如何除錯SSH連線

夢共裡醉發表於2022-05-19
本文將介紹一些可用於診斷SSH連線的快速方法和技術,包括何時無法連線SSH,身份驗證錯誤等。
問題一:SSH服務沒有執行

SSH連線錯誤的常見原因是服務未在遠端伺服器上執行。這可能是由於服務意外關閉或系統重新啟動後服務未啟動而引起的。

要檢查SSH服務是否正在執行,請執行下面 :

[root@server1 ~]# systemctl status sshd

如何除錯SSH連線如何除錯SSH連線

解決方法

使用以下 設定SSH服務開機啟動,並啟動服務:

[root@server1 ~]# systemctl enable sshd
[root@server1 ~]# systemctl start sshd
問題二:非標準埠上的SSH

除錯SSH連線時的第二個常見問題是使用非標準埠。如果SSH在預設埠22以外的其他埠上執行,則除非明確指定執行SSH的埠,否則將不能連線到遠端主機。

要檢視執行SSH的埠,請使用netstat之類的工具,如下所示:

[root@clean-idea-1 ~]# netstat -tlunp|grep sshd
tcp        0      0 0.0.0.0:28159           0.0.0.0:*               LISTEN      818/sshd            
tcp6       0      0 :::28159                :::*                    LISTEN      818/sshd

如何除錯SSH連線如何除錯SSH連線
上面的輸出顯示了SSH服務在哪個埠上執行。在這種情況下,它是埠28159。

解決方法

埠不是預設的22時,連線就需要指定埠了:

[root@server1 ~]# ssh root@192.168.43.131 -p 28159
問題三:埠被佔用

SSH連線錯誤的另一個原因是其他服務或程式是否也使用與SSH服務相同的埠。例如,SSH的埠號為80,這和http服務的埠衝突了,則類似Apache的服務可能正在使用相同的埠。

要檢視其他程式是否正在使用與SSH相同的埠,請使用以下命令檢查日誌:

[root@server1 ~]# journalctl -t sshd

該命令應返回如下所示的錯誤,顯示埠已被佔用。
如何除錯SSH連線如何除錯SSH連線

解決方法

在這可以修改ssh的埠號,開啟配置檔案將埠修改為其他的, Port 2222

vim /etc/ssh/sshd_config 
Port 2222

如何除錯SSH連線如何除錯SSH連線

問題四:被防火牆阻止

如果嘗試了上述所有方法,仍無法建立SSH連線,則可以看看防火牆是否阻止連線?

解決方法

在Cetnos8中,使用fireawlld檢視防火牆,並將埠新增允許裡面:

[root@server1 ~]# firewall-cmd --list-all
[root@server1 ~]# firewall-cmd --permanent --add-port=2222/tcp
success
[root@server1 ~]# firewall-cmd --reload
success

如何除錯SSH連線如何除錯SSH連線

問題五:已禁用密碼登入

有時,您可以將SSH配置為不接受密碼登入,而僅使用公金鑰身份驗證。如果公鑰在伺服器上不可用或缺少私鑰對,則可能導致不能登入的問題。

解決方法

要檢查 /etc/ssh/sshd_config配置檔案是否允許密碼登入,請將ssh配置設定為如下:

[root@server1 ~]# grep PasswordAuthentication /etc/ssh/sshd_config 
#PasswordAuthentication yes
PasswordAuthentication yes
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication, then enable this but set PasswordAuthentication

上面的輸出顯示允許密碼登入。

總結

本文討論了SSH連線錯誤的主要原因以及如何解決它們。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2895432/,如需轉載,請註明出處,否則將追究法律責任。

相關文章