31st Sun
GNU screenとSSH Agent Forwarding
This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/151
detachしたGNU screenのセッションに、別なサーバから再接続したり、一度ログアウトしてから再接続しようとすると、SSH Agent Forwardingがうまく機能しなくなってしまいます。 この問題は、screen作成時に設定されたSSH関連の環境変数(SSH_XXXX)が、再接続時には無効な値となっていることにscreenが気づかないために起こります。
従って、この問題を解決するためには、再接続の直前に接続元の SSH関連の環境変数をコピーし、接続後にその値を再設定する必要があります。 以下は、これを実施するためのShellスクリプトの例です。
# fix ssh env if [ "$TERM" = "screen" ]; then alias fixsshenv='cat ~/.ssh/fix_ssh_env | sh' alias ssh='fixsshenv; ssh' alias svn='fixsshenv; svn' else export | grep '^SSH_' > ~/.ssh/fix_ssh_env fiこれを~/.bashrcや~/.zshrcに記述しておけば、SSH Agent Forwardingが うまく行かなくなったときに
$ fixsshenvを実行する事で復帰させる事ができます。 便利のためにsshとsvnコマンドはaliasを設定しています。 screenへのre-attach時に、自動的にfixsshenvを実行するようにできたらスマートですね。
This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/151
posted by
genki on Sun 31 Dec 2006 at 05:55 with 0 comments