查看linux版本
centos8:lsb_release -a
centos7:cat /etc/redhat-release
第一步:修改SSH配置文件(注意是sshd_config而不是ssh_config,多了个d)
vim /etc/ssh/sshd_config
找到“#Port 22”,这一行直接键入“yyp”复制该行到下一行,然后把两行的“#”号即注释去掉,修改成:
Port 22
Port 22222
SSH默认监听端口是22,如果你不强制说明别的端口,”Port 22”注不注释都是开放22访问端口。上面我保留了22端口,防止之后因为各种权限和配置问题,导致连22端口都不能访问了。
增加了22222端口,大家修改端口时候最好挑10000~65535之间的端口号,10000以下容易被系统或一些特殊软件占用,或是以后新应用准备占用该端口的时候,却被你先占用了,导致软件无法运行。
第二步:如果你关闭了SELinux,或是centos7及以下版本 可以忽略第二步。
先查看SELinux开放给ssh使用的端口
semanage port -l|grep ssh
我的系统打印如下:
ssh_port_t tcp 22
可知,SELinux没有给SSH开放22222端口,那么我们来添加该端口:
semanage port -a -t ssh_port_t -p tcp 22222
完成后,再次查看
semanage port -l|grep ssh
ssh_port_t tcp 22,22222
第三步:如果你关闭了防火墙,可以忽略第三步,话说防火墙不开启太危险了,建议开启。
先查看防火墙是否开启了22222端口:
firewall-cmd --permanent --query-port=22222/tcp
打印结果如下:
no
表示没有开放10086端口,那么添加下该端口:
firewall-cmd --permanent --add-port=22222/tcp
打印结果如下:
success
重新加载防火墙策略:
firewall-cmd --reload
执行成功后,查看10086端口是否被开启:
firewall-cmd --permanent --query-port=22222/tcp
打印结果如下:
yes
第四步:重启SSH服务和防火墙,如果有必要也可以重启下服务器
systemctl restart sshd
systemctl restart firewalld.service
shutdown -r now
第五步:尝试通过22222端口登录SSH,或者进入该服务器直接本地访问SSH如下:
ssh root@localhost -p 22222
登录成功后
关闭默认 22端口
firewall-cmd --permanent --zone=public --remove-port=22/tcp
重启防火墙
systemctl reload firewalld
查看防火墙端口
firewall-cmd --list-ports