本地操作系统更新/重新安装后无法再使用 ssh:“找不到匹配的主机密钥类型。他们的报价:ssh-rsa、ssh-dss”

stw*_*ist 5 ssh

我通过 ssh 进入了一个 Linux 服务器。我需要通过重新安装全新操作系统来更新我的本地 Linux 操作系统。我保存了旧的~/.ssh并将其复制回来。但现在,当我尝试 ssh 进入服务器时,我得到以下信息:

Unable to negotiate with [server's IP] port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
Run Code Online (Sandbox Code Playgroud)

当我这样做时ssh -Q key,结果包括ssh-rsassh-dss

服务器很旧,很可能已经过时,但我无法控制这一点。

编辑:哇,仅仅因为在一个专为寻求帮助而设计的网站上寻求帮助而投了反对票。如果我说我有点惊讶,那我是在撒谎。这就是为什么我从来不尊重或关心 stackoverflow 及其对超龄霍尔监视器毒性的积极修饰。

tel*_*coM 5

检查系统范围的 SSH 配置 ( /etc/ssh/ssh_config):也许新的 Linux 安装有旧安装没有的东西。

此外,sshd当新的 SSH 客户端向它们提供大量可协商选项时,一些非常旧的实现可能会感到困惑,因为旧服务器没有为新客户端提供的所有选项分配足够的缓冲区空间。

尝试ssh -o HostKeyAlgorithms=ssh-rsa,ssh-dss username@old-host。如果这导致您收到不同的错误消息,那么您可能还必须限制其他可协商的选项。

  • 谢谢。这个 `ssh -o HostKeyAlgorithms=ssh-rsa,ssh-dss username@old-host` 最初给了我不同的错误(“权限被拒绝(公钥)。”)但是 -v(v(v)) 建议给了我附加消息“debug1:send_pubkey_test:无相互签名算法”(紧接在“提供公钥:[路径]”之后)。幸运的是,对该消息的网络搜索使我找到了最终起作用的东西,使用*两者*“-o HostKeyAlgorithms = ssh-rsa,ssh-dss”和“-o'PubkeyAcceptedKeyTypes + ssh-rsa'”。只要我同时使用这两者,而不仅仅是其中之一,连接就会成功。 (2认同)