tmux に接続し直した時に ssh-agent につなぎ直す方法

調べると色々出ては来るけど、環境変数 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 して追加する。
    • $SSH_CONNECTION が空でない場合、サーバであるとみなして、ssh-agent をシェルから利用できるようにする。
      • $SSH_AUTH_SOCK の値自体は固定したいので、$HOME/.ssh/agent としておき、実体へのシンボリックリンクとする。
      • こうしておくと、tmux に対して別の SSH セッションで接続し直した場合でも、$SSH_AUTH_SOCK の参照先を差し替えることができ、ssh agent を利用することが可能。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です