修改 ssh 端口的前因后果
今天用安卓手机 ssh 连接我的服务器的时候,出现了 kex_exchange_identification
。又要修 bug 了。
百度了一下,按照 ssh连接失败,排错经验 的步骤做了一下,发现 ssh 有时连得上,有时连不上。迷惑行为。
按照他的方法,关闭 ssh 服务,并开始 ssh 的调试模式:
1 | service sshd stop |
打开以后,貌似一切正常。
几秒以后,发现 ssh 显示了很多,然后就直接退出了???
粗略看了一下,有一个未知 ip (最后查出来是法国的)在尝试 ssh 连接我的服务器。大概是来搞我的。
于是我就把他放进 ssh 的黑名单了。
1 | echo x.x.x.x >> /etc/hosts.allow |
重新开启调试模式,发现几秒以后他又关掉了。
这次是江苏的。
重复了一次,发现又有一个北京的。
????
大家都来搞我???
ssh 没有仅允许白名单访问的方法,那咋办嘛。
后来突然想到,不应该用默认端口的,否则他发现端口可用就可以暴力破解了!
于是下面才是正题:如何更改 ssh 的端口。
修改方法
1 | vi /etc/ssh/sshd_config |
1 |
现在的端口 Port
是默认的 22,我们要修改,先要把 Port
前注释的 #
去掉,然后把 22 改为自己想要的数字(0-65535 都可,只要不跟自己其他的端口重合)。
1 | Port 2333 |
然后再开调试模式,发现一切都和平了。
以后要 ssh
远程的时候,就要带一个端口参数了。对于 39.1.2.3
的服务器的 2333 端口,应该使用
1 | ssh -p2333 root@39.1.2.3 |
即可。