pullとpushをするたびに毎回passphraseを求められる.
面倒くさい...passphraseを入力しないでsshの操作を行いたい.けど若干手間取ったのでその過程を備忘録的に残しておく.
Enter passphrase for key '/c/Users/user/.ssh/id_ed25519':
うーん...公開鍵と秘密鍵関連のsshらへんの設定がうまくいっていない模様.
まず,接続先がsshになっているかを確認.httpsになっていると毎回passphraseを求められる.もしgit@github.com:
で始まっていたらOK.httpsで始まっていたらssh用のものに変更が必要.
git config remote.origin.url
// httpsで始まっていたら設定を変更する
git remote set-url origin git@github.com:<ユーザID>/<リポジトリ名>.git
まだpassphraseを聞かれる.
リモートとやり取りする際の設定ファイルの有無を確認する.
cd ~/.ssh
ls
// configが存在しているか確認.存在していない場合は作成する.
touch config
またはPowerShellの場合,touchが使えないので
New-Item config
configには以下の内容を記述する.
VSCodeで編集する場合には同じディレクトリでcode config
で開ける.
Host github
HostName github.com
IdentityFile ~/.ssh/id_ed25519
User git
sshの接続を確認してみる
ssh -T git@github.com
しかし,まだpassphraseを求められる.
Enter passphrase for key '/c/Users/user/.ssh/id_ed25519':
ssh-agentを使ってみる.しかし,そんなファイルはないと言われてしまった.
ssh-add C:\Users\user\.ssh\id_ed25519
// 存在してないと怒られる
Error connecting to agent: No such file or directory
windowsの場合?,ssh-agentが起動していないことがある.
タスクマネージャーから確認しに行く.スタートでタスクマネージャーを検索し,開く.タスクマネージャーの検索窓でopenSSH
と検索.
こんな感じのが出てくる(はず)
右クリックしてサービス管理ツールを開くを選択.別ウィンドウが開く.
ここで,OpenSSHを選択し,ダブルクリック.
スタートアップの種類が無効になっていたら自動にし,OKをクリック.これでPC起動と同時にssh-agentが起動するようになった.
再度ssh-addできるか確認.今度はpassphraseを聞かれた.普通にpassphraseを入力し,Identity added: c:\Users\user\.ssh\id_ed25519
と言われて通った.
もう一度sshを確認してみる.今度は何も聞かれずに通った!
ssh -T git@github.com
Hi yukino-sasaki! You've successfully authenticated, but GitHub does not provide shell access.
しかし,pullをしてみるとまだpassphraseを聞かれる...と思っていたら,先ほどのssh-agentの設定をgitに反映させないといけないらしい.Gitの設定を、WindowsのOpenSSHを見に行くように変更する.これがないとVSCodeからpushしようとしたときにid_rsa.pubというデフォルトの名前以外で鍵を作った場合の C:\Users\user/.ssh/config を見に行ってくれない.
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
これで無事にpullができた!