我在Windows笔记本电脑和运行macOS 12.6.1的Mac M1上安装了Visual Studio 2022 17.3.6。当我运行Uno项目或Xamarin项目时,它会按预期连接到Mac。我刚刚将Mac升级到Ventura,无法再连接。我知道唯一改变的是搬到文图拉,但我一直在思考如何继续。
准确的错误是:
尝试使用"ip:22"的SSH密钥建立SSH连接时出错
我尝试过以下操作:
- SSH从我的笔记本电脑在Ubuntu for Windows-工作
- 来自另一台计算机的SSH已工作
- 已验证Mac上的远程登录设置
- 运行sshusername@macip"ls",它起作用了
- 已删除%LOCALAPPDATA%\Xamarin\Monotouch-无更改
- 已查看Visual Studio日志-没有其他信息
- 已查看Mac上的日志,没有其他信息
一个原因可能是Ventura附带了OpenSSH_9.0p1。从OpenSSH v8.8开始,使用SHA-1的RSA签名被禁用:
此版本默认情况下使用SHA-1哈希算法禁用RSA签名"。
修复SSH(RSA SHA-1(在macOS Ventura 中不工作
-
编辑/etc/ssh/sshd_config并保存:
HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
-
重新启动sshd
macOS Monterey和较旧版本分别使用OpenSSH v8.6或更早版本。
我认为更合适的解决方案是安装适用于Windows的较新版本的OpenSSH,而不是在Mac端重新启用已失效的RSA SHA-1签名。诚然,v9.1.0.0p1在2022年12月发布其他答案后才可用:
- 在Windows机器上,打开";可选特征">
- 搜索";OpenSSH客户端";并将其扩展
- 单击";卸载";按钮
- 下载并安装适用于Windows v9.1.0.0p1或更高版本的OpenSSH
我发现Visual Studio将隐式使用新版本,您将能够再次连接到Mac。
这涉及所有操作系统Ventura系统(例如终端和Iterm(,而不仅仅是VS。在ssh -vvv [my_concerned_host]
之后,我可以在报告的末尾看到send_pubkey_test: no mutual signature algorithm
。然后SSH自动切换到下一个身份验证方法:密码
对我来说,在root ssh配置中应用@TylerH解决方法是不够的。我还必须在我的(配置文件(配置中执行此操作:~/.ssh/config
+source ~/.bash_profile
以应用更改。正如他们(已经(在03/21中所说的[这里](https://confluence.atlassian.com/bitbucketserverkb/ssh-rsa-key-rejected-with-message-no-mutual-signature-algorithm-1026057701.html),RSA现在提供了太多的漏洞**sshd_config中的补丁只能由无法使用更强算法**(例如ECDSA或ED25519(重新生成密钥对的人应用
如果您有多个主机,则添加的2行前面必须加bye:Host *
Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
我试过@monoano答案,但它对我不起作用。
我添加了相同的行:
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
在/etc/ssh/ssh_config
文件的末尾(没有重新启动任何东西(,现在我的ssh连接又开始工作了。
编辑:
为了在更新等之间保持配置,必须在/etc/ssh/ssh_config.d
中创建一个新文件,其行数与该目录中的所有文件都包含在/etc/ssh/ssh_config
中的行数相同
问题的原因是Ventura附带了OpenSSH_9.0p1,默认情况下会禁用带有SHA-1的RSA签名。这意味着,对任何使用SHA-1的RSA签名的服务器进行ssh操作都将不起作用(影响许多旧服务器(。我终于解决了这个问题。这个解决方案不需要重新启动ssh就可以立即工作,而且即使在更新macOS后也很持久。解决问题:
步骤1:转到/etc/ssh/ssh_config.d
sudo cd /etc/ssh/ssh_config.d
步骤2:创建一个名为config:的新文件
sudo nano config
步骤3:添加以下内容并保存文件(Ctrl-O,然后Ctrl-X(
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
您现在应该可以通过SSH进行连接了。