調べると色々出ては来るけど、環境変数 SSH_AUTH_SOCK の中身を有効な内容に上書きすれば OK。
自分の .bashrc には以下のように記述した。
[prism field=”bashrc-ssh-agent” language=”bash”]
ポイントは以下。
$SSH_CONNECTION
の中身を見て、 SSH 接続されたシェルかどうかをチェック。$SSH_CONNECTION
が空の場合、クライアントであるとみなして、ssh-agent
を起動する。- 起動時に、PID 等の設定をファイルにリダイレクトして、シェルを複数起動した場合に一つの
ssh-agent
を共有可能にする。 ssh-agent
起動後、$HOME/.ssh/
内の鍵をssh-add
して追加する。
- 起動時に、PID 等の設定をファイルにリダイレクトして、シェルを複数起動した場合に一つの
$SSH_CONNECTION
が空でない場合、サーバであるとみなして、ssh-agent
をシェルから利用できるようにする。$SSH_AUTH_SOCK
の値自体は固定したいので、$HOME/.ssh/agent
としておき、実体へのシンボリックリンクとする。- こうしておくと、
tmux
に対して別の SSH セッションで接続し直した場合でも、$SSH_AUTH_SOCK
の参照先を差し替えることができ、ssh agent を利用することが可能。