• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

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 Png genki on Sun 31 Dec 2006 at 05:55

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry97
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ