踏み台を超えて scp
今回はmacのターミナルを使用した scp コマンドに関する内容です。
踏み台の先にあるサーバ上のファイルをscpで取得する際、少しつまずいたので情報共有です。
踏み台を経由しない場合、コマンドは以下になります。
(ローカルのファイルをリモートへコピー)
scp ~/test.txt user@hostname:~/
1台の踏み台サーバーを経由する場合、ワンライナーだと以下になります。
scp -o 'ProxyCommand ssh user1@hostname1 nc %h %p' ~/test.txt user2@hostname2:~/
上記のように ProxyCommand を使って実現します。
では踏み台が2台ある場合はどうでしょう。
そんな時は ~/.ssh/configに接続情報を記載します。
$ vi ~/.ssh/config
Host fumidai-first
HostName fumidai-first.co.jp
User foo
IdentityFile ~/.ssh/id_rsa
Host fumidai-second
HostName fumidai-second.co.jp
User foo
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh fumidai-first -W %h:%p
Host honban
HostName honban.co.jp
User foo
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh fumidai-second -W %h:%p
上記のように設定すると、以下のコマンドでscpができます。
scp honban:~/test.txt ~/
踏み台経由でssh/scp する際には、 ~/.ssh/config ファイルに接続情報を記載しておくとかなりスムーズに接続を行うことができます。