2021-05-12 14:32:11
如何在 Linux 中更改 SSH 埠
預設情況下, SSH 偵聽埠 22 。 更改預設 SSH 埠可以降低被自動攻擊的風險,從而為伺服器增加額外的安全層。
和更改預設埠相比,將防火牆設定為僅允許從特定主機存取埠 22 則更加簡單和安全。
本教學介紹如何更改 Linux 中的預設 SSH 埠。我們還將向您展示如何設定防火牆以允許存取新的 SSH 埠。
更改 SSH 埠
請按照以下步驟更改 Linux 系統上的 SSH 埠:
選擇新的埠號
在 Linux 中,低於 1024 的埠號保留用於眾所周知的服務,並且只能由 root 係結。雖然您可以使用 1-1024 範圍內的埠進行 SSH 服務,但為了避免將來出現埠分配問題,建議選擇 1024 以上的埠。
在此範例中,將 SSH 埠更改為 5522 ,當然您可以選擇任何您喜歡的埠。
調整防火牆
在更改 SSH 埠之前,首先需要調整防火牆以允許新 SSH 埠上的流量。
如果您使用的是 Ubuntu 的預設防火牆設定工具 UFW , 請執行以下命令來開啟新的 SSH 埠:
sudo ufw allow 5522/tcp
在 CentOS 中,預設的防火牆管理工具是 FirewallD 。要開啟新埠,請執行以下命令:
sudo firewall-cmd --permanent --zone=public --add-port=5522/tcp sudo firewall-cmd --reload
CentOS 使用者還需要調整 SELinux 規則以允許新的SSH埠:
sudo semanage port -a -t ssh_port_t -p tcp 5522
如果您使用 iptables 作為防火牆,則以下命令將開啟新的 SSH 埠:
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
編輯 SSH 設定
使用文字編輯器開啟 SSH 組態檔 /etc/ssh/sshd_config :
sudo nano /etc/ssh/sshd_config
搜尋以 Port 22 開頭的行。在大多數情況下,此行將以 # 開頭。刪除 # 並輸入將用於代替標準 SSH 埠 22 的新 SSH 埠號。
Port 5522
修改 SSH 組態檔時要格外小心。不正確的設定可能導致 SSH 服務無法啟動。
完成後儲存檔案並重新啟動 SSH 服務以應用更改:
sudo systemctl restart ssh
在 CentOS 中, ssh 服務命名為 sshd :
sudo systemctl restart sshd
要驗證 SSH 守護程式是否正在偵聽新埠 5522 ,請鍵入:
ss -an | grep 5522
輸出應該如下所示:
tcp LISTEN 0 128 0.0.0.0:5522 0.0.0.0:* tcp ESTAB 0 0 192.168.121.108:5522 192.168.121.1:57638 tcp LISTEN 0 128 [::]:5522 [::]:*
使用新的 SSH 埠
現在您已經更改了要登入遠端的計算機 SSH 埠,您需要在登入時指定新埠。
使用 -p <port_number> 選項指定埠:
ssh -p 5522 username@remote_host_or_ip
結論
在本教學中,您學習了如何更改 Linux 伺服器上的 SSH 埠。您可能還需要設定基於 SSH 金鑰的身份驗證,不輸入密碼的情況下連線到 Linux 伺服器。
如果您經常連線到多個系統,則可以通過在 SSH 組態檔中定義所有連線來簡化工作流程。
如果您遇到問題或有反饋,請在下面留言。
相關文章