直接リモートサーバに接続できない場合、Linuxの中継サーバを経由して目的のリモートサーバとrsyncする方法のメモ。
しかしsshのport forwardingをしっかり理解できていないから毎回ネットを徘徊する老眼SEです(;_;
Linux01<===>Linux02(matsuoka)<===>Linux03(tanaka)
Linux02を中継してLinux01とLinux03の/backupの同期を行います。
- ssh port forward
- rsync
Linux01のlocal port:10022をlinux02(user:matsuoka)を中継してLinux03のport:22に転送します。
1 2 3 |
[root@Linux01 ~]# ssh -fN -L10022:Linux03:22 matsuoka@Linux02 [root@Linux01 ~]# ps ax | grep ssh 16244 ? Ss 0:00 ssh -fN -L10022:linux03:22 matsuoka@Linux02 |
オプションが沢山付いていますが気にしないで下さい(笑)
肝心ところは-e “ssh -p 10022”とtanaka@localhost:/backup/でsshはlocal port:10022を使ってlocalhostに接続です。
1 |
[root@Linux01 ~]# rsync -az -e "ssh -p 10022" --bwlimit=3750 --log-file=/root/rsync_log/rsync-`date +"%Y%m%d-%H%M%S"`.log --log-file-format="%o %f (%U %B) %l %b" --rsync-path="sudo rsync" tanaka@localhost:/backup/ /backup |
これで直接接続できないリモートサーバとの同期ができました。
よかった。
ところで初めてrsyncを実行するとsshの警告がでます。
The authenticity of host ‘[localhost]:10022 ([::1]:10022)’ can’t be established.
RSA key fingerprint is 33:72:66:11:aa:64:1e:74:ca:b5:7a:32:54:ff:22:33.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘[localhost]:10022’ (RSA) to the list of known hosts.
一応known_hostsには”[localhost]:10022 ssh-rsa”が追加されていてrsyncもできてるから大丈夫とは思うけど、localhostにsshしてはダメなのかな?