我正在使用 ssh -V 运行 Kali Linux OpenSSH_7.7p1 Debian-3, OpenSSL 1.0.2o 27 Mar 2018
。我尝试通过 SSH 连接到服务器(黑客挑战)并得到响应Unable to negotiate with ********* port 22: no matching cipher found. Their offer: 3des-cbc,blowfish-cbc,cast128-cbc,idea-cbc
。
我尝试编辑/etc/ssh/ssh_config
文件以将这四个文件之一添加到我的密码列表中,但我收到了消息/etc/ssh/ssh_config line 38: Bad SSH2 cipher spec 'aes128-cbc,blowfish-cbc'
。
我也尝试过用 -c 指定密码,例如ssh ********* -c blowfish-cbc
,但后来我得到了Unknown cipher type 'blowfish-cbc'
。
有趣的是,当我尝试使用 3des-cbc 的 -c 时,我实际上得到了不同的响应:
ssh ********* -c 3des-cbc
Received disconnect from ********* port 22:2: Handshake failed
Disconnected from ********* port 22
我认为我的最新版本的 SSH 不允许使用这些密码是否正确?我该如何解决这个问题?
更新:我被要求澄清为什么这不是重复的这个问题。给出的解决方案是更新服务器的配置,这显然不是我在这里可用的选项。另外,在那里,-c 选项起作用了,唯一的问题是为什么它是必要的,而在这里它似乎不是。
然而,我确实从那里学到了这个ssh -Q cipher
命令,它实际上响应了我的 ssh 客户端支持 3des-cbc,尽管不支持其他 3 个。这可能意味着事实上-c 3des-cbc
是正确的方法,我只需要进一步调试它以找出握手失败的原因。所以也许它确实包含了我的答案,尽管非常间接。
答案1
检查 .json 文件中的 ssh_username。我相当确定这是要走的路。知道握手失败的一个密码告诉我它在握手本身中,并且全部在 .json 文件中。其他人甚至没有尝试谈判。祝你好运。