无法向sshd_config添加KexAlgorithms,Cisco灾备系统无法连接SFTP服务器
Ubuntu 20.04 SFTP服务器适配Cisco设备旧加密算法配置方案
问题根源
Ubuntu 20.04自带的OpenSSH 8.2p1默认禁用了部分老旧加密算法和密钥交换(KEX)协议,直接替换Ciphers和KexAlgorithms配置会覆盖默认安全算法列表,导致sshd服务因缺少必要组件启动失败。
解决方案步骤
1. 确认支持的算法列表
先检查当前OpenSSH支持的加密算法和KEX协议,确保目标算法在支持范围内:
# 查看支持的加密套件 ssh -Q cipher # 查看支持的密钥交换算法 ssh -Q kex
确认aes128-cbc、diffie-hellman-group-exchange-sha1、diffie-hellman-group1-sha1出现在输出结果中。
2. 修改sshd_config配置
不要直接替换默认算法列表,而是追加需要的旧算法,这样既保留安全的现代算法,又兼容Cisco设备:
编辑/etc/ssh/sshd_config,添加以下两行:
Ciphers +aes128-cbc KexAlgorithms +diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
+符号表示在默认算法集合后追加指定项,而非替换全部,这是避免服务启动失败的关键。
3. 验证配置并重启服务
修改后先检查配置语法是否正确,无报错再重启服务:
# 验证配置语法 sudo sshd -t # 重启SSH服务 sudo systemctl restart sshd
4. 测试连接
- 用Cisco设备尝试SFTP连接
- 或在本地用客户端模拟强制使用指定KEX测试:
sftp -o KexAlgorithms=diffie-hellman-group1-sha1 你的Cisco用户名@服务器IP
5. 排查启动失败的额外手段
如果服务仍无法启动,查看系统日志定位具体错误:
# 查看SSH服务日志 journalctl -u sshd # 或查看认证日志 cat /var/log/auth.log
常见错误包括算法名称拼写错误、系统缺少对应加密模块等,根据日志提示调整配置。
内容的提问来源于stack exchange,提问作者Chris Daniels
相关产品推荐
相关产品推荐

