SSH で多段接続?

  本当はトンネルみたいに remotehost2 に接続したいけど,よくわからない.

- localhost から remotehost1 を経由して remotehost2 に接続する.

[localhost] -> [remotehost1] -> [remotehost2]

o 前提
  remotehost2 には remotehost1 からでないと入れない.
  頻繁に接続するのでパスフレーズを打つのがめんどくさい.
  remotehost1 で認証エージェントを起動したくない.
  各ホストでセキュリティに対して責任が持てる.

- 準備
o remotehost1/2 で鍵を生成

% ssh-keygen -t rsa
  Generating public/private rsa key pair.
  Enter file in which to save the key ($HOME/.ssh/id_rsa): (パスフレーズ)

o 公開鍵 (id_rsa.pub) を localhost に持ってくる
  例えば,

$HOME/.ssh/id_rsa.pub.remotehost1
$HOME/.ssh/id_rsa.pub.remotehost2

  として保存.

- 接続する
o localhost で認証エージェントの起動.鍵の登録.

% eval `ssh-agent` <- sh 系のシェル
% eval `ssh-agent -c` <- csh 系のシェル
% ssh-add $HOME/.ssh/id_rsa.pub.remotehost1
  Enter passphrase for $HOME/.ssh/id_rsa.pub.remotehost1: (パスフレーズ)
% ssh-add $HOME/.ssh/id_rsa.pub.remotehost2
  Enter passphrase for $HOME/.ssh/id_rsa.pub.remotehost2: (パスフレーズ)

o 接続: パスフレーズは要らない

localhost% ssh -A remotehost1
remotehost2% ssh -A remotehost2

- 必要なくなったら,後片付け

% eval `ssh-agent -k`