こんにちは、現役エンジニアの inno_tech です。
WSL2で sshキー追加時にエラー「Could not open a connection to your authentication agent.」が発生してお困りでしょうか?
本記事は、WSL2 / Ubuntu 20.04LTS で動作確認しています。
問題|WSL2 で ssh-add を実行時にエラー
WSL2 で gitを使用するため ssh接続のセットアップをしたところ、ssh-add
コマンドでエラー Could not open a connection to your authentication agent.
が発生しました。
# sshキーの追加
ssh-add ~/.ssh/[あなたのssh-key]
# エラー発生
Could not open a connection to your authentication agent.
通常のUbuntu PC はうまくいくのになんでだろ?
解決策|ssh-agent のフォワーディングを行う
ssh接続時に公開鍵認証方式で認証を行う ssh-agent ですが、 WSL2(Ubuntu) から Windows に認証情報をフォワーディングする(引き継ぐ)必要があります。
# ssh-agent を使えるようにする
eval `ssh-agent`
# 追加できる
ssh-add ~/.ssh/[あなたのssh-key]
Enter passphrase for /home/[PC name]/.ssh/[あなたのssh-key]: パスフレーズを入力
疑問|eval `ssh-agent` は何してるのか?
ここで実行したeval `ssh-agent`
とは何をしているのでしょうか。echoコマンド で変数 ssh-agent の中身を確認してみます。
# ssh-agent を使えるようにする
echo `ssh-agent`
# 実行例 (変数 ssh-agent の中身)
SSH_AUTH_SOCK=/tmp/ssh-6FwPpcfdGpt1/agent.84;
export SSH_AUTH_SOCK;
SSH_AGENT_PID=85;
export SSH_AGENT_PID;
echo Agent pid 85;
evalコマンドは渡された引数を実行する、という意味なので、eval `ssh-agent`
によって 環境変数 SSH_AUTH_SOCK
, SSH_AGENT_PID
を設定していることが分かりました。
まとめ
今回のまとめです。
- WSL2 からsshを利用する場合は、ssh-agentのフォワーディングが必要.
eval `ssh-agent`
と実行すれば、必要な環境変数が設定可能.
このミステリーがすごい!2022年版で国内編1位に選出された注目の本が気になる方はこちら。
参考になったでしょうか。
ほかにも役立つ情報が他のページにあるかもしれないのでお見逃しなく!
ご覧になるかはあなた次第です!
この記事がイイねと思ったら、Twitterフォロー か にほんブログ村のどちらかしてくれたら嬉しいよ!
コメント / ご要望