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

SSH ForwardAgent搭配ProxyJump用于Git时认证失败如何解决?

问题根因

你配置里加的IdentitiesOnly yes是导致认证失败的核心原因:
这个参数的作用是强制SSH客户端仅使用配置文件中显式指定的IdentityFile私钥文件,完全忽略SSH agent中存储的所有密钥,也不会读取~/.ssh目录下的默认私钥。你本地工作站如果没有对应的私钥文件、或者私钥文件未解密、和agent中存储的密钥不匹配,自然会出现公钥认证失败。

另外你额外加的ForwardAgent yes完全是多余配置:ForwardAgent的作用是将本地SSH agent转发到你当前SSH登录的目标主机,供目标主机上的SSH客户端使用,而ProxyJump场景下,跳板机(你的笔记本)仅负责转发流量,你和Git远端的SSH认证握手是本地工作站直接和Git远端完成的,根本不需要把agent转发到任何机器上。


正确配置方案

将你现有的*.my-company.com相关SSH配置替换为以下内容即可:

Host *.my-company.com
    ProxyJump my-laptop
    # 显式指定公司Git服务的SSH端口,避免默认走22端口
    Port 7999

如果你本地工作站确实存储了对应的私钥文件,也可以保留IdentityFile配置,但必须删掉IdentitiesOnly yes,这样SSH会同时尝试本地agent中的密钥和你指定的私钥文件。


验证方法

配置修改完成后,先在工作站执行以下命令验证连通性:

ssh git@bitbucket.my-company.com

如果返回BitBucket的用户欢迎提示(提示你无法通过SSH登录交互式shell),说明认证已正常生效,此时再执行Git操作就不会报错了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:36:03