这几年服务器本来都是用密钥登录,结果今天才发现ucloud的服务器,目前还不支持用密钥去绑定已经在运行的服务器,就是ucloud的密钥,你只能在新建服务器或者重新安装系统的时候绑定。

然后默认ssh的端口是22,就会很容易被人扫到,去尝试爆破这个密码,防止别人爆破ssh密码有很多种,包括我们常用的密钥或者防火墙判断ip,以及直接修改端口号,这次就选择了修改端口号,改一个大一点的号码。

其实教程也不是通用的,和你自己的服务器系统以及防火墙有关,只能说可以当个参考。

1 - 先在服务器运营商后台开放一个端口

比如我添加一个:22211的端口,自行修改的端口号也尽量从10000开始,我这个22211,纯属记录教程用,实际上并不是这个。

这里就是你服务器的外网防火墙,阿里云、腾讯云都一样有的,都需要这里去放行才可以。

2 - 修改ssh的配置文件

用默认22端口进入服务器,执行命令:

vim /etc/ssh/sshd_config
#去修改端口
:wq
#保存退出

记住是sshd_config文件,找到#Port 22,然后把前面的#删掉,同时在下面加一个Port 22211

3 - 服务器内放行这个22211端口

我服务器是用的iptables,所以就是:

iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 22211 -j ACCEPT
#开放22211端口
service iptables save
#保存规则
systemctl restart iptables.service
#重启iptables

如果是firewall防火墙就是:

firewall-cmd –zone=public –add-port=22211/tcp –permanent
firewall-cmd --reload

4 - 修改SELinux里面的端口号

我看有的教程里面没有提到SELinux,可能是他们服务器运营商本身系统修改过???

执行下面命令:

yum provides semanage
#安装semanage
yum -y install policycoreutils-python
#安装依赖
semanage port -l | grep ssh
#查看端口
semanage port -a -t ssh_port_t -p tcp 22211
#添加22211端口

现在先重启下sshd服务和服务器:

systemctl restart sshd.service

服务器重启直接到你运营商后台去操作吧,重启之后我们继续用默认的22端口登录。

然后看下端口开放情况:

iptables -nvL

如果里面有刚才的22211,就新建一个ssh登录窗口,尝试能不能连接:

ssh root@ip -p 22211

如果能登录就是修改成功了。

5 - 最后删掉默认的22端口

vim /etc/ssh/sshd_config
systemctl restart sshd.service

去把里面的Port 22这一行删了,再重启sshd服务,现在你服务器默认的ssh登录端口就是22211了。

一顿操作下来,其实还是用密钥爽,可惜ucloud暂时不支持,已经在用的服务器,不可能去重新安装系统啊....