PC・ソフトウェア関連や、旅行・留学の記録を綴った備忘録

一番シンプルで簡単な多段ssh, scp, rsync

特定のサーバにログインするときに踏み台サーバを経由することはよくあると思います。そのようなときに、一発でssh, scp, rsyncをするときのコマンドを書いておきます。
ただし一番シンプルな形で紹介したいので、ssh_configをいじるなどはしないで、あくまで初心者に向けたコマンドのみの紹介です。
 
<状況>
ローカルPC → 踏み台サーバA → 対象サーバB
とログインする。アカウント等は以下とします。
 
サーバAについて
IP : IP_A
アカウント名:account_A
 
サーバBについて
IP : IP_B
アカウント名:account_B
 
 
<前提>
ログインは公開鍵認証方式で行うとする。
つまり、ローカルPCに秘密鍵を置いておき、公開鍵をサーバAとサーバBに配置する。
一応簡単のためパスフレーズはなし。
ローカルからサーバAにはパスワードなしでSSHログインできることは確認しておく。
 
 
<コマンド>
ssh
ローカルからサーバBにSSHログインする。
ssh -oProxyCommand='ssh -W %h:%p -qaccount_A@IP_A' account_B@IP_B
 
 
・scp
サーバBの~/test/ 配下のファイルをローカルの~/Desktopにscpする。
scp -p -oProxyCommand='ssh -W %h:%p -q account_A@IP_A' account_B@IP_B:~/test/* ~/Desktop/
 
 
サーバBの~/test/ 配下のファイルをローカルの~/Desktopにrsyncする。
rsync -av -e 'ssh -o ProxyCommand='ssh -W %h:%p -q account_A@IP_A' account_B@IP_B:~/test/* ~/Desktop/
 
 
とりあえずおまじないとして記録。