我一直遇到 SSH 問題
嘗試連線時我總是收到此訊息:
Connection closed by 192.168.1.10 port 22
當我檢查 SSH 狀態時
ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab Active: active (running) since Sun 2017-01-01 23:17:08 GMT; 57min ago Process: 804 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS Main PID: 487 (sshd) CGroup: /system.slice/ssh.service
└─487 /usr/sbin/sshd -D
Jan 01 23:17:14 kevin-desktop sshd[487]: Server listening on :: port
22. Jan 02 00:14:09 kevin-desktop sshd[2078]: error: key_load_public: invalid format Jan 02 00:14:09 kevin-desktop sshd[2078]: error: Could not load host key: /etc/s Jan 02 00:14:09 kevin-desktop sshd[2078]: error: key_load_public: invalid format Jan 02 00:14:09 kevin-desktop sshd[2078]: error: Could not load host key: /etc/s Jan 02 00:14:09 kevin-desktop sshd[2078]: error: key_load_public: invalid format Jan 02 00:14:09 kevin-desktop sshd[2078]: error: Could not load host key: /etc/s Jan 02 00:14:09 kevin-desktop sshd[2078]: error: key_load_public: invalid format Jan 02 00:14:09 kevin-desktop sshd[2078]: error: Could not load host key: /etc/s Jan 02 00:14:09 kevin-desktop sshd[2078]: fatal: No supported key exchange algor
答案1
我自己也看過這種情況,就是主機金鑰損壞的時候。您可以透過執行以下操作來重置它們:
sudo rm /etc/ssh/ssh_host_* && sudo dpkg-重新設定 openssh-server
我還沒有弄清楚為什麼他們被破壞了。
答案2
在客戶端上產生一組新的金鑰:
ssh-keygen
從客戶端取得公鑰的內容:
~/.ssh/id_rsa.pub
並將它們附加到伺服器上的授權密鑰檔案中:
~/.ssh/authorized_keys
伺服器上的權限應如下所示:
-rw------- 1 user1 user1 399 Apr 20 09:04 authorized_keys
drwx------ 2 user1 user1 4096 Apr 20 09:04 .ssh
答案3
fatal: No supported key exchange algor...
看起來您的客戶端支援的演算法與伺服器支援的演算法不同。LogLevel DEBUG
在伺服器中設定/etc/ssh/sshd_config
並用於ssh -vvv
取得失敗原因的更多資訊。