調べると色々出ては来るけど、環境変数 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 を利用することが可能。
