Recently i have been setting up with my own server in Centos playing around with Centos and understanding more about Linux. It has been a challenging and interesting process for me. From a beginner point of view, there is really a lot to learn and explore with hardware. One of this problem i faced was ssh giving me a headache when i change the ssh port to something different rather than port 22.
The whole process of changing SSH port 22 to something else was really to harden the security side for SSH. However, who would have though problem will come for something so simple such as changing SSH port to something else rather than 22?
If you are getting the following message
connect to host xxx.xxx.xxx.xxx port 2222: No route to host
and you are sure that you did the correct thing and started staring at your hardware switch. Don't. This should have nothing to do with your layer 3 switch if you hasn't touch it yet.
The reason why only port 22 is accessible via SSH and not other port was because Centos has its own Firewall called Iptables. If you are like me who suspect it might be Centos firewall who is causing the problem, you have found the right answer.
In order to determine whether is it the rule of Centos Iptables who is causing this problem, all you have to do is to initialize the following command,
this will flush the iptables rules and make it clean from centos default rules. Now, try to ssh to your machine and see whether it works?
If it does, you just found the culprit for your headache. Next, we will need to change the iptables rule so that it stays permanent on the iptables. Navigation down to
look for the last 3rd line where you will see --dport 22, change it to your new ssh port and restart your iptables and sshd
service sshd restart service iptables restart
and you should be able to ssh properly from another machine to your server. Cheers!