【解決】WSL2(Ubuntu)でsshキーの追加時にエラーが起きた時の対処法(Could not open a connection to your authentication agent.)

[記事内には広告が含まれています]

こんにちは、現役エンジニアの inno_tech です。

WSL2で sshキー追加時にエラー「Could not open a connection to your authentication agent.」が発生してお困りでしょうか?

本記事を見れば、WSL2 で sshキーの追加エラーが解消し、ssh接続ができるようになります。

本記事は、WSL2 / Ubuntu 20.04LTS で動作確認しています。

もくじ

問題|WSL2 で ssh-add を実行時にエラー

WSL2gitを使用するため 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フォロー か  にほんブログ村のどちらかしてくれたら嬉しいよ!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

コメント / ご要望

コメントする

goto
もくじ
閉じる