踏み台サーバで sudo して別のユーザの鍵を使う多段 ssh
sudo が絡むと単純に ProxyCommand でというわけには行かないっぽいのでメモ。
サーバにログインする場合
ログインしてサーバ上で作業したい場合です。
ssh -t bastion_server sudo -u user ssh remote_server
サーバからファイルを取ってくる場合
要するに scp 的なことがしたい場合です。base64 を噛ませているのは、ssh が LF を CRLF に変換しているっぽくてファイルが破損したためです。正直よくわかりません。
ssh -q bastion_server sudo -u user ssh -q remote_server 'cat remote_path | gzip | base64 --wrap=0' | base64 -d | gunzip > local_path
gzip は単に効率の問題なのでお好みでどうぞ。
なお、base64 コマンドは GNU coreutils のものです。OS X のように BSD のものを使う場合は -D
オプションでデコードらしいです (試してない)。複数ファイルの場合は tar で固めるといけると思います。