Mac環境では、SSHキーからssh-agentなどの設定がスムーズに(ミラクル!)できていたようで悩まなかったのですが、Windows環境のVScodeでは、push毎にパスフレーズを求められていて、ずっとストレスだったのですが、ようやく手順を見直す気になりました。
同じことをするのに、Windowsでは難しく感じてしまう元Mac子なのです。
まずはssh-agentを確認
Get-Service ssh-agent Status Name DisplayName ------ ---- ----------- Stopped ssh-agent OpenSSH Authentication Agent
はい!案の定、ssh-agentは実行されていません。
サービスアプリで見てもよし! 実行されてなく、手動になっているはずです。
ssh-agentを自動で実行するように変更
これを自動に変更します。
Set-Service ssh-agent -StartupType Automatic
Set-Service : Service 'OpenSSH Authentication Agent (ssh-agent)' cannot be configured due to the following error: Acces
s is denied
At line:1 char:25
+ Get-Service ssh-agent | Set-Service -StartupType Automatic
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied:
権限がないそうです。
powershellを管理者権限で起動します。
Start-Process -Verb runas powershell
見慣れたプロンプトが出るので 変更を許可します。
上で先にさらっとコマンド書いていますが調べました。
ネットを調べると以下のような詳しい呪文を見つける。
Get-Service ssh-agent | Set-Service -StartupType Automatic -PassThru | Start-Service -PassThru | Select-Object -Property Name, StartType, Status
よくわからない場合(たいがいよくわからないが、、、)には、すぐにコマンドを実行せずに控えているので、他も見てみて最後にgithubのドキュメントも見たりして単純にしました。
Get-Service ssh-agent ssh-agentを確認。実行していない、手動だった。 Set-Service ssh-agent -StartupType Automatic 手動(Manual)から自動(Automatic)変更する。 Start-Service ssh-agent ssh-agentを実行させます
これで無事、自動に切り替わり、実行もしたことになりました。 すべてサービスアプリでしてもよいかも。 今回ですと、OpenSSH Authentication Agentを選択してプロパティを開ければ設定できます。
ssh-agentの実行を確認
Get-Service ssh-agent Status Name DisplayName ------ ---- ----------- Running ssh-agent OpenSSH Authentication Agent
実行中になりました。
exitして、powershellの管理者権限を終了します。
ssh-agentにSSHキー追加
ssh-add C:\Users\user名\.ssh\id_ed25519 Enter passphrase for C:\Users\user名\.ssh\id_ed25519: パスフレーズ入力 Identity added: C:\Users\user名\.ssh\id_ed25519
結果どうなったか?
ここまででは、まだ毎回フレーズを聞かれてしまいます。
.ssh/config ファイルを用意します。自分はgithubなので、以下のような内容。
Host github HostName github.com IdentityFile "C:\Users\user名\.ssh\id_ed25519" User git
これでもまだ、毎回フレーズを聞かれます・・・
以下の設定が必要らしい。
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
爽快!!
これでやっと、毎回フレーズの入力をしないでよいようになりました!
かろやか~笑
補足
自分環境では、githubにある、.bashrcを使う方法はうまくいきませんでした。
おそらくわたしがなにかを間違えているんだろうと思いますけど。ははは