为了防止SSH被暴力破解,除了设置复杂的密码外,我们一般都会选择修改SSH默认的22端口。
首先修改文件,输入命令
vi /etc/ssh/sshd_config
可以看到其中一行Port 22,把后面的数字改为自己想改的端口号,如果前面有#号,需要删除,保存后再输入命令
/etc/init.d/sshd restart
重启SSH服务即可。
另外有一点要说明的是,如果系统启用了iptables,而修改的SSH端口并未添加到iptable允许列表内,就会造成修改后无法连接,所以在修改前我们也要确保iptables里已经添加了要修改的ssh 端口的规则。假设我们要修改SSH端口为6666,输入命令
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 6666 -j ACCEPT
然后输入
service iptables save
保存iptables设置,否则重启后又会失效。但是我在这样设置后发现还是无法用修改的端口连接SSH,我非常疑惑明明已经在iptables里添加了允许目标端口允许的规则,为什么还是不行。搜索了相关文档后,发现其实是iptables规则顺序的问题,输入
iptables -L -n --line-numbers
查看iptables的当前规则可以看到我刚刚设置的规则在默认的reject后面,因为iptables是按照先手优先顺序执行规则的,因此我们添加的规则没有生效。知道原因后就简单了,直接修改iptables文件,输入
vi /etc/sysconfig/iptables
然后把我们要设置的规则修改到前面的顺序,保存后再输入
service iptables stop
service iptables start
重启iptables,再连接SSH,发现已经可以成功连接!