文章目录
- CentOS 7 使用 SSH 连接交换机出现一下第一个报错
- CentOS 7 使用 SSH 连接交换机出现一下第二个报错
CentOS 7 使用 SSH 连接交换机出现一下第一个报错
报错信息:Unable to negotiate with xxx.xxx.xxx.xxx port 22: no matching key exchange method found. Their offer:diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
报错解释:这个错误通常发生在使用SSH(Secure Shell)客户端尝试连接到SSH服务器时。错误信息表明SSH客户端无法与指定IP地址(xxx.xxx.xxx.xxx)的22号端口上的SSH服务进行密钥交换,因为没有找到匹配的密钥交换算法。可能的原因包括:SSH客户端和服务器支持的密钥交换算法不兼容。SSH配置问题,导致服务器不接受来自客户端的密钥交换请求。解决方法:检查SSH客户端和服务器端都支持哪些密钥交换算法,并确保它们至少有一个共同支持的算法。如果你有权限访问服务器,检查SSH服务器的配置文件(通常是/etc/ssh/sshd_config),确保KexAlgorithms指令包含至少一个客户端支持的算法。如果你没有权限访问服务器,你可能需要联系服务器管理员来进行配置更改。更新SSH客户端到最新版本,以确保它支持当前的安全标准和算法。如果你正在使用SSH客户端的命令行工具,可以尝试指定密钥交换算法,例如使用ssh -o KexAlgorithms=+<algorithm_name>来强制使用特定算法。在进行任何更改之前,请确保理解每个步骤的影响,并考虑到安全性和兼容性。
在 SSH 配置文件下添加如下信息解决
vim /etc/ssh/sshd_config
...省略N
# Host *
# ForwardAgent no
# ForwardX11 no
...省略N
# RekeyLimit 1G 1h
#
# Uncomment this if you want to use .local domain
# Host *.local
# CheckHostIP noKexAlgorithms diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 # 添加
#重启 SSH 服务 systemctl restart sshd.service
CentOS 7 使用 SSH 连接交换机出现一下第二个报错
报错信息:Unable to negotiate with XXX port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
报错解释:
这个错误通常发生在使用SSH客户端尝试连接到SSH服务器时。错误表明客户端无法与服务器上的端口22建立安全连接,因为它找不到一个共同支持的主机密钥算法类型。
解决方法:
-
检查SSH客户端配置文件(例如
~/.ssh/config
或全局的/etc/ssh/ssh_config
),确保它包含服务器支持的主机密钥类型。 -
如果你有权限访问服务器,可以在服务器的SSH配置文件(例如
/etc/ssh/sshd_config
)中添加客户端支持的主机密钥类型。 -
更新SSH客户端到最新版本,以确保它支持当前的主机密钥算法。
-
如果你无法修改服务器配置,可以尝试使用
-o
选项在SSH命令中指定主机密钥类型,例如:ssh -o HostKeyAlgorithms=+ssh-rsa user@host
-
另一个解决方案是使用
ssh-keyscan
命令来收集服务器的主机密钥,并将其添加到~/.ssh/known_hosts
文件中。
确保在进行任何更改时,你了解这些更改可能带来的安全风险,并且在必要时获取适当的授权。
在 SSH 配置文件下添加如下信息解决
vim /etc/ssh/sshd_config
...省略N
# Host *
# ForwardAgent no
# ForwardX11 no
...省略N
# RekeyLimit 1G 1h
#
# Uncomment this if you want to use .local domain
# Host *.local
# CheckHostIP noKexAlgorithms diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 # 添加HostKeyAlgorithms=+ssh-rsa # 添加
#重启 SSH 服务 systemctl restart sshd.service