仙石浩明の日記: ssh-agent を screen の中から使う方法 に書かれているように、 screen のなかで ssh-agent を使うにはちょっと一手間がいる。この中の環境変数 $SSH_AUTH_SOCK
を毎回書き換える処理が、 OpenSSH 7.3 から導入された IdentityAgent を使うことで不要になっていたのでメモ。
なお、以下は全て screen を実行するリモートホスト側での作業になる。
まず ssh ログイン時に実行される ~/.ssh/rc で、 $SSH_AUTH_SOCK
を元にシンボリックリンクを作る処理を入れる。これは従来と同じで、 ssh-agent のソケットファイルを同一のパスで指定できるようにするための対応である。
#!/bin/bash # Fix SSH auth socket location so agent forwarding works within tmux/screen if [ "$SSH_AUTH_SOCK" ]; then ln -sf $SSH_AUTH_SOCK ~/.ssh/agent.sock fi
そして ~/.ssh/config で IdentityAgent
にこのシンボリックリンクを指定する。
Host * IdentityAgent ~/.ssh/agent.sock