sshで抜け道をつくる

ある地点Aから別の場所Bにssh接続しようとしたところなぜか拒否されるという事態が起こった. Aから一旦別の場所Cを中継してBに接続することはできた.
この場合, リモートログインは良いとしても, sftpなどが面倒である. 一度Cに内容を保存することなく, 直接BからAへ転送したい. こういう場合の抜け道の作り方を教わったのでメモしておく.
まず一つ目の端末でServerCにつなぐ. このとき, ServerBへの道を定めたポートに関連付けておく.

$ ssh -L8022:ServerB:22 ServerC

これがつながったら別の端末を開き*1, このポートを介してデータを転送すればよい.

$ ssh -p 8022 localhost
$ scp -P 8022 localhost:foo bar
$ rsync -avz -e "ssh -p 8022 " localhost:foo bar

*1:一つ目の端末はそのままにしておくこと.