monolithic kernel

踏み台サーバで sudo して別のユーザの鍵を使う多段 ssh

February 16, 2017

    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 で固めるといけると思います。