システム開発 2021年10月29日

Windows10のSSH認証ではまった

なぜSSHで失敗するのかわからない

Visual Studio Code(以下VSCode)が人気となっているこの頃、Windows上の開発環境をVSCodeに移行することになりました。会社で使用しているGitLabもVSCodeから使えるようにするため、SSHの設定も同時に行いました。

現在のWindows 10では標準でOpenSSHクライアントが利用できるようになっています。そのため、PowerShellやコマンドプロンプトから「ssh-keygen」コマンドでSSH鍵の作成ができます。公開鍵をGitLabにコピーし、最後に「ssh -T 」コマンドでGitLabに接続できることも確認しました。

ここまでは順調だったのですが、VSCodeからGitLabが問題なく使えるか確認をしていると、「git push」ができないことがわかりました。エラーには「Permission denied (publickey).」とありました。SSH接続のエラー?GitLabに公開鍵は追加したはず、なぜ?

原因がわからず、とりあえず手順を初めからやり直しますが、やはりプッシュできません。

ssh-agentが動いていない

原因は、Windowsのssh-agentが動いていなかったことでした。以下のコマンドでssh-agentが動いているかわかります。

ssh-add -l
Could not open a connection to your authentication agent.

サービスを起動しよう

Winキー+Qを押して、「サービス」と入力してサービスアプリを開きます。サービスのリストから「OpenSSH Authentication Agent」を探してスタートアップの種類を「自動」にします。ちなみに、リストからサービスを探すときにキーボードでOを入力するとOで始まるサービスまで一気にスクロールしてくれます。

以下のコマンドでssh-agentへ秘密鍵を登録します。

>ssh-add ~/.ssh/id_ed25519

PowerShellでssh-agentに鍵を登録するとgit pushができるようになりました。また、ssh-agentを使えるようにしたことでSSH接続の際にパスフレーズの入力も省略できるようになり快適になりました。

 

記事の著者:

Web制作ならアズシエルにご相談ください。

Web制作パートナーとしてサイトの企画からデザイン、運用まで支援します!Webサイト制作についてはこちらからサービスをご確認ください!

この記事をSNSでシェアする!