tmuxでdetachしてログアウトすると、attachしたときssh ForwardAgentが切れている

   2017/05/01

接続先サーバに公開鍵を設定しておき、ForwardAgentを有効にしておくと毎回パスワードを入力しないでログインできるので便利です。 しかし、tmuxのセッションから一旦detachしてログアウトしてしまうと、tmuxセッション内で環境変数SSH_AUTH_SOCKに指定されているソケットは消されてしまう。サーバに再ログインするとSSH_AUTH_SOCKに別ソケットが設定されるが、tmuxセッション内は古いSSH_AUTH_SOCKのままであり、ForwardAgentがうまくいかない。 以下のコードを~/.bashrcにいれて対応した。

 

tmuxでattachしたあとでForwardAgentがうまくいかない場合は、agent関数を実行。

$ agent

 

やってることは、ログインする度にできる/tmp/ssh-xxxx/agent.yyyyy を $HOME/.ssh/ssh-xxxx/agent.yyyyy にシンボリックリンクする。また、SSH_AUTH_SOCKを$HOME/.ssh/ 配下のシンボリックリンクファイルのパスに変更する。 agent関数を実行すると不要になったシンボリックリンクは削除し、SSH_AUTH_SOCKにあるパスをアクティブなソケットにリンクしなおす。

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら