So how do you force sshd to listen on multiple IP addresses? Let us say you have total 8 public IP address and one private IP address. You would like to bind sshd to one selected public IP (ex 70.5.xx.xx) and private IP (10.1.5.1) only.
Luckily there is an easy way to achieve this using ListenAddress option. It specifies the local addresses sshd should listen on. If this directive is skipped from configuration file sshd will bind or list on all available IP address.
# vi /etc/ssh/sshd_config
Specify multiple ip address on each new line with ListenAddress (multiple ListenAddress options are permitted):
Save and close the file.
Restart the sshd:
# /etc/init.d/sshd restart
Verify that sshd is only listing to specified IP address:
# netstat -tulpn | grep :22Output:
tcp 0 0 126.96.36.199:22 0.0.0.0:* LISTEN 26472/sshd tcp 0 0 10.1.5.1:22 0.0.0.0:* LISTEN 26472/sshd
This is good if public SSHD IP address is not available due to configuration issues. You can always login via private IP connected to KVM or on board server IPMI card 🙂