Linux SSH端口修改及故障排除
摘要
Linux更改SSH端口,連接拒絕或防火墻設(shè)置錯(cuò)誤。
引言
SSH(Secure Shell)是一種加密網(wǎng)絡(luò)協(xié)議,用于遠(yuǎn)程連接和管理網(wǎng)絡(luò)設(shè)備。更改SSH端口是提高系統(tǒng)安全性的一種方式,因?yàn)槟J(rèn)端口22可能成為攻擊目標(biāo)。您可以在HKGserver下單時(shí)選擇隨機(jī)端口以提高安全性
一、編輯SSH配置文件
要更改SSH端口,首先需要編輯SSH配置文件sshd_config
。您可以使用以下命令打開配置文件:
vim /etc/ssh/sshd_config
為了防止編輯錯(cuò)誤,建議在編輯之前備份配置文件:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

修改端口號(hào)為你想要使用的新端口號(hào)。請(qǐng)注意,端口號(hào)應(yīng)在范圍 1-65535 內(nèi),且不能與其他已使用的端口沖突。 我們進(jìn)入需要輸入 i 進(jìn)入編輯狀態(tài),如上圖修改好之后;按 esc 后輸入 :wq 即可保存退出; 保存文件并退出編輯器。
編輯完成后,記得重新啟動(dòng)SSH服務(wù):
systemctl restart sshd
到這里沒問題的就成功了;

解決SELinux拒絕問題
Job for sshd.service failed because the control process exited with error code.See "systemctI status sshd.service" and "journalctI -xe" for details.
在重啟SSH服務(wù)時(shí)(systemctl restart sshd),可能會(huì)遇到SELinux拒絕訪問的問題。您可以暫時(shí)關(guān)閉SELinux以解決此問題:
setenforce 0
不過,關(guān)閉SELinux會(huì)降低系統(tǒng)的安全性。我們?cè)趫?zhí)行完整體 systemctl restart sshd
后記得打開SELinux;不然后面也會(huì)報(bào)錯(cuò)
sudo systemctl start firewalld
二、調(diào)整防火墻設(shè)置
有的服務(wù)需要開啟端口,防火墻開啟的情況下;如果是阿里云服務(wù)器之類的還需要在設(shè)置中打開對(duì)應(yīng)的端口; 更改SSH端口后,需要相應(yīng)地調(diào)整防火墻設(shè)置,以確保新端口的可訪問性。
查看開放端口
您可以使用以下命令查看當(dāng)前開放的端口:
firewall-cmd --list-ports
添加新端口
假設(shè)您的新SSH端口為2022,您可以使用以下命令添加新端口:
sudo firewall-cmd --zone=public --add-port=2022/tcp --permanent
重新加載防火墻
為使更改生效,需要重新加載防火墻配置:
firewall-cmd --reload
如果意外地添加了錯(cuò)誤的端口,可以使用以下命令刪除:(執(zhí)行下面后也要重新執(zhí)行加載:firewall-cmd --reload)
firewall-cmd --permanent --remove-port=2022/tcp
小結(jié)
通過本文,您學(xué)習(xí)了如何更改SSH端口,并解決了可能出現(xiàn)的SELinux和防火墻問題。正確地配置SSH端口和相關(guān)安全設(shè)置對(duì)于維護(hù)系統(tǒng)的安全性至關(guān)重要。記得在操作前備份配置文件,以防意外發(fā)生。
表格總結(jié)
步驟 |
命令 |
---|---|
打開SSH配置文件 |
vim /etc/ssh/sshd_config |
備份配置文件 |
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak |
重啟SSH服務(wù) |
systemctl restart sshd |
關(guān)閉SELinux |
setenforce 0 |
重啟防火墻 |
sudo systemctl start firewalld |
查看開放端口 |
firewall-cmd --list-ports |
添加新端口 |
sudo firewall-cmd --zone=public --add-port=2022/tcp --permanent |
重新加載防火墻 |
firewall-cmd --reload |
刪除錯(cuò)誤端口 |
firewall-cmd --permanent --remove-port=2022/tcp |