升级到文图拉后,Visual Studio 2022 将无法通过 macOS 上的 SSH 进行连接



我在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 中不工作

  1. 编辑/etc/ssh/sshd_config并保存:

    HostkeyAlgorithms +ssh-rsa
    PubkeyAcceptedAlgorithms +ssh-rsa
    
  2. 重新启动sshd

macOS Monterey和较旧版本分别使用OpenSSH v8.6或更早版本。

我认为更合适的解决方案是安装适用于Windows的较新版本的OpenSSH,而不是在Mac端重新启用已失效的RSA SHA-1签名。诚然,v9.1.0.0p1在2022年12月发布其他答案后才可用:

  1. 在Windows机器上,打开";可选特征">
  2. 搜索";OpenSSH客户端";并将其扩展
  3. 单击";卸载";按钮
  4. 下载并安装适用于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进行连接了。

相关内容

  • 没有找到相关文章

最新更新