SSH で多段接続?
2004-12-19-1: [Security]
本当はトンネルみたいに 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`
関連記事:
[2006-09-04-2] connect を使って簡単に多段 SSH を実現する方法
[2005-01-24-2] SSH でポートフォワード