ソースIPアドレスを指定してsshする

経緯

HA構成のサーバから他のサーバにsshする際、ソースIPをVIPにする必要があったのでメモ

設定

sshのオプションで-o bindaddress=<ソースIPアドレス>を使えばいいらしい

host1からhost2へのsshを試してみます。
host1:10.0.0.10(rip)、10.0.0.20(vip)
host2:10.0.0.30(rip)

普通にsshした場合

[root@host1 ~]# ssh root@10.0.0.30
Last login: Wed Sep  9 21:37:08 2020 from 10.0.0.10
[root@host2 ~]#


host2の/var/log/secureを見ると、接続元は「10.0.0.10」

Sep  9 21:44:20 host1 sshd[13344]: Connection from 10.0.0.10 port 55155 on 10.0.0.30 port 22


ソースIPを変えてsshした場合

[root@host1 ~]# ssh -o bindaddress=10.0.0.20 root@10.0.0.30
Last login: Wed Sep  9 21:48:49 2020 from 10.0.0.20
[root@host2 ~]#


接続元がvipである「10.0.0.20」になりました。

Sep  9 21:50:09 host1 sshd[13774]: Connection from 10.0.0.20 port 41473 on 10.0.0.30 port 22



マシンに無いアドレスを指定するとエラー

[root@host1 ~]# ssh -o bindaddress=10.0.0.40 root@10.0.0.30
bind: 10.0.0.40: Cannnot assign requested address


sftpでも使えます。

[root@host1 ~]# sftp -o bindaddress=10.0.0.10 10.0.0.30
Connecting to 10.0.0.30...
sftp>