無法從家庭 linux SSH 進入我的伺服器,但可以從 Windows SSH 進入同一伺服器
我無法從我的一個 Ubuntu 安裝 SSH 到我的伺服器,但如果我使用另一個 Ubuntu 安裝或 Windows 作業系統,通過 SSH 連接可以順利進行。
所以我的一個 Ubuntu 安裝出現了問題,我正在努力尋找確切的問題。
我試過重新安裝 ssh/openssh-client/openssh- /ssh。
這是詳細輸出中的幾行:
ssh username@MYSERVERADDRESS -v debug1: Offering RSA public key: /home/user/.ssh/id_rsa debug1: Server accepts key: pkalg ssh-rsa blen 279 debug1: Authentication succeeded (publickey). Authenticated to MYSERVER ([MYSERVERADDRESS]:22). debug1: channel 0: new [client-session] debug1: Requesting no-more-sessions@openssh.com debug1: Entering interactive session. debug1: pledge: network packet_write_wait: Connection to MYSERVERADDRESS port 22: Broken pipe
從Google搜尋嘗試了許多不同的解決方案,但從未奏效。已刪除 .ssh 目錄,已刪除 /etc/ssh/ssh_config (它是使用預設值再次自動創建的)。
另一個資訊是問題不是來自伺服器端,因為我可以使用另一個作業系統和相同的網路通過 SSH 連接到伺服器。
更新 :
- 防火牆已禁用
- 託管在雲端的伺服器
- 我有 3 台不同的機器,雙啟動 Windows 和 Linux。
- SSH 在所有機器上都能完美執行,除了一台 Linux 連接困難的機器,並且在使用 Windows 的同一台機器上一切正常。
- 更清晰的觀點 4:總共 3 台機器,每台機器都載入了 Linux 和 Windows(雙啟動),只有一台機器在執行 Linux 時出現 SSH 問題。
如果您需要我提供更多數據,請告訴我(伺服器地址和使用者名除外)。
我找到了解決這個問題的方法(很抱歉回答我自己的問題)。我正在回答它,因為如果有人有這個問題,那麼他/她可以使用我找到的解決方案。
實際上問題出在伺服器和客戶端雙方。
伺服器端問題是
/home/<user>/.ssh/known_hosts
伺服器上的文件對於 Ubuntu 安裝的條目無效,因為兩個作業系統具有相同的硬體 id 和相同的 ip(靜態 ip)但不同的密鑰。所以我所做的是:
ssh-keygen -f /home/<user>/.ssh/known_hosts -R ip.ip.ip.ip
在我的情況下 ip.ip.ip.ip 是我網路的靜態公共 ip。在 ip.ip.ip.ip 將分別更改的伺服器和客戶端電腦上執行此命令。
我不知道這個命令做什麼(我從Google搜尋/試錯中找到了這個解決方案)
您還可以將您的客戶端電腦 known_hosts 文件複製到其他客戶端電腦或作業系統。
對不起,我的英語不好。
如果有人知道這個命令的作用以及為什麼這個命令解決了問題,那麼請告訴我們!謝謝你。
賓果解決了!