You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级MacOS Ventura13.0.1后ProxyJump SSH报错求助

问题原因及解决方法

核心原因

MacOS Ventura升级后自带的OpenSSH版本(OpenSSH_9.0p1)对RSA密钥的处理做了严格限制,而ProxyJump和手动跳转的SSH连接逻辑存在差异:

1. 算法协商范围不同

  • 用ProxyJump时,是本地SSH客户端直接和第二台机器进行全流程算法协商,包括主机密钥验证和用户身份验证两个环节。你添加的HostKeyAlgorithms +ssh-rsa只解决了主机密钥不匹配的问题,但OpenSSH 9.0+默认禁用了ssh-rsa作为用户身份验证算法,导致本地RSA密钥无法被第二台机器识别,只能 fallback到密码登录。
  • 手动跳转时,是通过第一台机器的SSH客户端连接第二台,第一台机器的OpenSSH版本大概率较低,仍支持ssh-rsa作为身份验证算法,所以能正常用密钥登录,无需输入密码。

2. 密钥转发逻辑差异

手动跳转时,你可能开启了密钥代理转发(ForwardAgent yes),或者第一台机器上存储了能访问第二台机器的密钥,所以不需要额外输入密码。但ProxyJump是本地直连第二台机器,依赖本地密钥和算法匹配,这就暴露了算法不兼容的问题。

解决方法

方法一:完善SSH配置,同时允许主机密钥和身份验证算法使用ssh-rsa

修改你的~/.ssh/config,给second-machine添加身份验证算法配置:

Host second-machine
    User my_username
    ProxyJump first_machine
    HostKeyAlgorithms +ssh-rsa
    PubkeyAcceptedAlgorithms +ssh-rsa

添加PubkeyAcceptedAlgorithms +ssh-rsa后,本地SSH客户端会主动用ssh-rsa作为身份验证算法,匹配第二台机器的配置,就能正常使用密钥登录,无需重复输入密码短语。

方法二:确保密钥已加入ssh-agent

如果你的密钥设置了密码短语,可将其加入ssh-agent,避免每次输入:

  1. 检查当前ssh-agent中的密钥:ssh-add -l
  2. 如果看不到你的RSA密钥,执行:ssh-add ~/.ssh/你的密钥文件名(比如ssh-add ~/.ssh/id_rsa)

内容的提问来源于stack exchange,提问作者Maz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 17:35:27