以下のようなサーバー構成で local から target へ多段 ssh するケースがあります。
[local] <---> [proxy] <---> [target]
以下のコマンドが成立するケース。
% ssh -t user@proxy.server -i ~/.ssh/keys/local.key "ssh user@target.server -i ~/.ssh/keys/proxy.key"
こんなコマンドが必要とする場合、.ssh/config に以下のような記述をするとよいでしょう。
Host proxy.server Hostname xxx.xxx.xxx.xxx User user Port 22 IdentityFile ~/.ssh/keys/local.key TCPKeepAlive yes IdentitiesOnly yes Host target.server Hostname xxx.xxx.xxx.xxx User user Port 22 IdentityFile ~/.ssh/keys/proxy.key # local に保存する必要がある ProxyCommand ssh proxy.server nc -w 10 %h %p
次のコマンドでいける
% ssh target.server
メモ
proxy.sever から target.server への ssh 時に ~/.ssh/config に proxy.key を使うようにすでに設定してあった場合があるとします。例えば次のコマンドが成立するケース。
% ssh -t user@proxy.server -i ~/.ssh/keys/local.key "ssh user@target.server"
この場合でも local に ~/.ssh/keys/proxy.key を保存しておかないと多段SSHができないようです。