Ssh
SSH-“無法協商…找不到匹配的主機密鑰類型。”
我在嵌入式系統上有一個 shell 伺服器(這是一個 32 位 ARMel 系統)。當我去登錄它時,我使用:
$ ssh root@ip Unable to negotiate with ip port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
所以我想,好吧,我會給它一種預期的密碼類型,並帶有以下
-c
選項:$ ssh -c ssh-dss root@ip Unknown cipher type 'ssh-dss'
或者:
$ ssh -c ssh-rsa root@ip Unknown cipher type 'ssh-rsa'
所以我不確定下一步該怎麼做。我有一個可以向其發送命令的 UART 串行控制台,但我寧願使用 SSH。我知道它正在執行該服務,但我不知道如何登錄它。
嘗試使用這個:
ssh -oHostKeyAlgorithms=+ssh-rsa root@ip
筆記:
我在遺留的 Cisco 嵌入式系統中經常看到這種情況,這些系統的韌體無法再升級到現代 ssh 標準。
除了附加主機密鑰算法之外,您可能還需要使用過時的密碼規範。
例子:
ssh <user>@asa5505 -c aes256-cbc -oKexAlgorithms=+diffie-hellman-group1-sha1
好消息是 OpenSSH(我使用的)通常會告訴我提供的是什麼 KA 或密碼——否則我可能不得不進行大量試驗和錯誤。
如果我這樣做,可用的密碼/HostKeyAlgorithms 可以在 OpenSSH 中列出:
ssh -Q [ciphers|hostkeyalgorithms]