首頁 > 軟體

如何在 Linux 中更改 SSH 埠

2020-06-16 16:33:36

預設情況下, 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 組態檔中定義所有連線來簡化工作流程。

如果您遇到問題或有反饋,請在下面留言。


IT145.com E-mail:sddin#qq.com