Linux 變更 SSH port 示範

本文使用 Ubuntu 22.04 主機做示範

確認 Port 沒有被使用

先選定一個要變更的 port ,檢查是否被占用,預設的 22 有被使用,輸出訊息如下:
    
$ sudo lsof -i :22
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      646   root    4u  IPv4  18402      0t0  TCP vps:ssh->114-37-107-128.dynamic-ip.hinet.net:52330 (ESTABLISHED)
sshd      757 ubuntu    4u  IPv4  18402      0t0  TCP vps:ssh->114-37-107-128.dynamic-ip.hinet.net:52330 (ESTABLISHED)
sshd    12406   root    3u  IPv4  31188      0t0  TCP *:ssh (LISTEN)
sshd    12406   root    4u  IPv6  31199      0t0  TCP *:ssh (LISTEN)
    

port 12345 預設沒有被使用,不會有輸出訊息:
    
sudo lsof -i :12345
    

修改設定

編輯設定檔:
    
sudo vi /etc/ssh/sshd_config
    

將 Port 改為 12345 (原本是 22)
    
Port 12345
    

檢查設定檔是否正確,正確應該會顯示沒有錯誤或是沒有輸出訊息
    
sudo sshd -t
    

重新啟動服務
    
systemctl restart sshd
    

確認修改成功

如果是遠端連線,先不要關閉終端機,直接開啟另一個視窗連線,使用相同的語法(沒有附加 port)應該會顯示連接被拒,代表已經不是預設的 22 Port
    
# ssh ubuntu@12.234.12.34
ssh: connect to host 12.234.12.34 port 22: Connection refused
    

連接時附加 port ,使用剛剛修改後的 Port ,並輸入密碼連接
    
ssh -p 12345 ubuntu@12.234.12.34
ubuntu@12.234.12.34's password:
    

輸入密碼後連接成功,變更 SSH Port 完畢

留言