第一步:修改SSH配置文件(注意是sshd_config而不是ssh_config,多了個d)
vim /etc/ssh/sshd_config 找到“#Port 22”,這一行直接鍵入“yyp”複製該行到下一行,然後把兩行的“#”號即註釋去掉,修改成:
Port 22 Port 10086
SSH默認監聽端口是22,如果你不強制說明別的端口,”Port 22”注不註釋都是開放22訪問端口。上面我保留了22端口,防止之後因爲各種權限和配置問題,導致連22端口都不能訪問了,那就尷尬了。等一切都ok了,再關閉22端口。
增加了10086端口,大家修改端口時候最好挑10000~65535之間的端口號,10000以下容易被系統或一些特殊軟件佔用,或是以後新應用準備佔用該端口的時候,卻被你先佔用了,導致軟件無法運行。
第二步:如果你關閉了SELinux,可以忽略第二步。
先查看SELinux開放給ssh使用的端口
(在 RHEL 8 及 CentOS 8 只要用 dnf 安裝 policycoreutils-python-utils 套件即可: # dnf install policycoreutils-python-utils 安裝好 policycoreutils-python-utils 便可以正常執行 semanage.)
semanage port -l|grep ssh 我的系統打印如下:
ssh_port_t tcp 22
可知,SELinux沒有給SSH開放10086端口,那麼我們來添加該端口:
semanage port -a -t ssh_port_t -p tcp 10086 完成後,再次查看
semanage port -l|grep ssh
ssh_port_t tcp 22,10086
第三步:如果你關閉了防火牆,可以忽略第三步,話說防火牆不開啓太危險了,建議開啓。
(systemctl start firewalld.service)
先查看防火牆是否開啓了10086端口:
firewall-cmd --permanent --query-port=10086/tcp
打印結果如下:
no
表示沒有開放10086端口,那麼添加下該端口:
firewall-cmd --permanent --add-port=10086/tcp
打印結果如下:
success
重新加載防火牆策略:
firewall-cmd --reload
執行成功後,查看10086端口是否被開啓:
firewall-cmd --permanent --query-port=10086/tcp
打印結果如下:
yes
第四步:重啓SSH服務和防火牆,最好也重啓下服務器
systemctl restart sshd
systemctl restart firewalld.service
shutdown -r now
第五步:嘗試通過10086端口登錄SSH,或者進入該服務器直接本地訪問SSH如下:
ssh [email protected] -p 10086
登錄成功後
關閉默認 22端口
firewall-cmd --permanent --zone=public --remove-port=22/tcp
重啓防火牆
systemctl reload firewalld
查看防火牆端口
firewall-cmd --list-ports
** (如果是雲服務器, 雲控制檯訪問控制裏面增加對應端口)**