我已/etc/ssh/sshd_config
根据此处提供的答案更新了我的文件 -
OSX 10.11 启用 ssh diffie-hellman-group1-sha1
https://stackoverflow.com/questions/26424621/algorithm-negotiation-fail-ssh-in-jenkins
# Ciphers and keying
Ciphers 3des-cbc,blowfish-cbc,cast128-cbc,arcfour,arcfour128,arcfour256,aes128-cbc,aes192-cbc,aes256-cbc,[email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],[email protected]
#RekeyLimit default none
KexAlgorithms [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
并使用以下命令重新启动 SSHD 守护程序:
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
但我仍然遇到同样的错误:
id$ git clone ssh://<user>@<host>:<port>/<repo>
Cloning into 'xxxxx'...
Unsupported KEX algorithm "+diffie-hellman-group1-sha1"
/Users/<user>/.ssh/config line 2: Bad SSH2 KexAlgorithms '+diffie-hellman-group1-sha1'.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
我使用的是 OpenSSH_6.9p1、LibreSSL 2.1.8。
任何帮助都将非常感激。
答案1
+
支持此功能(标志)从 openssh 7.0:
如果需要使用这个具体的算法,则需要直接在中指定~/.ssh/config
,例如
KexAlgorithms diffie-hellman-group1-sha1
答案2
在 Mac OS X 上向 .ssh/config 添加带有选项的登录
当我通过 SSH 登录到旧的 Ubuntu 服务器时,我在 Mac OS X 12.4 Monterey 上遇到了类似的问题,因此在阅读了本文(以及许多其他页面)并注意到服务器在尝试失败时提供的信息后,我尝试按照上述建议将这些行添加到我的 SSH 配置文件中,但没有成功。
然后我尝试使用特定命令和旧服务器提供的三种算法中的第一个登录:
ssh -o KexAlgorithms=diffie-hellman-group-exchange-sha1 root@MYSERVERIP
(显然用我的服务器 IP 地址替换了后者)成功了。
然后因为我使用其他 SSH 快速登录所以我在“~/.ssh/config”中添加了以下内容:
Host PETNAME
HostName MYSERVERIP
User root
port 22
KexAlgorithms=diffie-hellman-group-exchange-sha1
其中“PETNAME”是我为服务器分配的一个容易记住的名称,“root”是用户 - 显然这可能是服务器上的另一个用户名。
我现在可以ssh PETNAME
通过命令行进行连接(提示后输入密码)。