SSH密钥未发现no matching cipher found. Their offer: aes256-cbc,aes128-cbc,3des-cbc,des-cbc

本文介绍了SSH连接过程中出现密钥协商失败的问题,包括不同类型的密钥错误,如aes256-cbc、ssh-dss等,并提供了在本地配置文件中修改Ciphers、HostKeyAlgorithms或KexAlgorithms来解决的详细步骤,无需重启SSH服务即可解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SSH密钥协商失败,此问题为密钥类型缺失导致,现在遇到的类型有如下几个

1、Their offer: aes256-cbc,aes128-cbc,3des-cbc,des-cbc

Unable to negotiate with xx.xx.xx.xx port 22: no matching cipher found. Their offer: aes256-cbc,aes128-cbc,3des-cbc,des-cbc

无法与xx.xx.xx.xx 端口22协商:未找到匹配的密码。他们的报价:AES256 CBC、AES128 CBC、3DES CBC、DES CBC

可以在本地的/etc/ssh/ssh_config 文件中追加

 Ciphers +aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

 如果不想在全局中改也可在用户的配置是~/.ssh/config

理论上需要重启ssh服务,但这次忘了重启服务命令了,没有重启再次尝试可以了,提示输入密码

2、Their offer:ssh-dss

另一种密钥类型

终端远程登录ssh时,提示如下错误:

Unable to negotiate with 192.168.1.152 port 22: nomatching host host key type found. Their offer:ssh-dss

由提示得知,ssh不能远程登录的原因为:没有找到相关的主机密钥类型。

1、确实是主机密钥类型不符合

2、不存在相关主机密钥类型

  指定主机key算法(最后解决方案):

<think>好的,我现在需要解决用户遇到的SSH连接问题,错误是“no matching host key type found”,服务器提供的密钥类型是ssh-rsa和ssh-dss。首先,我得回忆一下这个错误的常见原因。可能的情况是客户端的SSH配置不支持服务器提供的密钥类型,导致协商失败。 接下来,我需要考虑解决方法。根据用户提供的引用内容,修改SSH客户端的配置文件是一个有效的方法。用户提到的引用[1]和[2]都建议在~/.ssh/config文件中添加特定的配置项,比如HostKeyAlgorithms和PubkeyAcceptedKeyTypes(或PubkeyAcceptedAlgorithms),并加入ssh-rsa等类型。这里可能需要确认配置项的正确名称,因为引用中有提到两种不同的写法:PubkeyAcceptedKeyTypes和PubkeyAcceptedAlgorithms。查阅最新的OpenSSH文档,发现正确的配置项应该是PubkeyAcceptedAlgorithms,但不同版本可能有差异,所以可能需要同时尝试。 另外,用户可能需要针对特定的主机进行配置,比如在配置文件中指定Host字段,然后添加对应的配置。如果用户希望全局生效,可能需要使用通配符或者默认配置。还需要提醒用户配置文件的位置和格式是否正确,比如确保每行的缩进和语法正确,没有拼写错误。 还有一种临时解决方法是在连接时通过命令行参数指定支持的密钥类型,例如使用ssh -o选项,但这不适合长期使用,每次连接都需要输入命令。因此,修改配置文件更为方便。 需要验证这些步骤是否适用于用户的环境,特别是不同操作系统或SSH版本可能存在差异。例如,较新的OpenSSH版本可能默认禁用不安全的密钥类型,如ssh-dss,所以需要明确添加支持。同时,用户应注意使用这些较弱的密钥类型可能带来的安全风险,建议在可能的情况下升级服务器密钥类型到更安全的选项,如ed25519或rsa-sha2-256/512。 总结步骤应该是:1)编辑配置文件,添加必要的配置项;2)测试连接是否成功;3)如果问题依旧,检查配置语法和路径是否正确;4)考虑服务器端升级密钥类型。同时,生成相关的问题可以帮助用户进一步理解可能遇到的其他问题或优化措施。</think>### 解决SSH连接中“no matching host key type found”错误的方法 当SSH客户端与服务器协商密钥类型失败时,会提示类似`no matching host key type found. Their offer: ssh-rsa, ssh-dss`的错误。此问题通常是因为客户端默认禁用了服务器提供的密钥类型(如`ssh-rsa`或`ssh-dss`),需手动配置兼容性选项。 --- #### **步骤说明** 1. **修改SSH客户端配置文件** - 打开或创建配置文件`~/.ssh/config`(若不存在需新建)。 - 添加以下配置,显式声明支持的密钥类型: ```bash Host your-server-hostname # 替换为实际主机名或IP HostName xxx.xxx.xxx.xxx User your_username Port 22 HostKeyAlgorithms +ssh-rsa,ssh-dss # 添加服务器提供的密钥类型 PubkeyAcceptedAlgorithms +ssh-rsa,ssh-dss # 声明接受的公钥算法 ``` - 若需对**所有主机生效**,可简化为: ```bash Host * HostKeyAlgorithms +ssh-rsa,ssh-dss PubkeyAcceptedAlgorithms +ssh-rsa,ssh-dss ``` 2. **通过命令行临时指定密钥类型** - 若需临时测试,可在连接时添加参数: ```bash ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa user@host ``` 3. **验证连接** - 执行`ssh user@host`测试是否成功。 - 若仍失败,检查配置文件语法(如缩进、拼写错误)或重启SSH服务。 --- #### **注意事项** - **安全性风险**:`ssh-rsa`(SHA-1)和`ssh-dss`(DSA)已被认为不够安全,建议服务器升级到更安全的算法(如`ed25519`或`rsa-sha2-256/512`)[^1][^2]。 - **配置优先级**:命令行参数优先级高于配置文件,若冲突需检查参数覆盖情况。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子非鱼39938

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值