Windows10转发SSH密钥克隆GitHub私有仓库时遇权限拒绝问题
解决SSH代理转发后远程服务器无法克隆GitHub私有仓库的问题
以下是针对性的排查和解决步骤:
1. 检查远程Ubuntu服务器的SSH代理转发配置
登录远程服务器,编辑SSH服务配置文件:
sudo nano /etc/ssh/sshd_config
找到AllowAgentForwarding项,确保其值为yes(如果被注释,去掉注释并修改为yes)。修改完成后重启SSH服务:
sudo systemctl restart sshd
2. 测试远程服务器与GitHub的SSH连通性
在远程服务器执行以下命令,查看密钥验证的详细过程:
ssh -vT git@github.com
重点关注输出中是否出现类似以下内容:
debug1: Offering public key: ED25519 SHA256:xxx agent
如果没有这行,说明远程服务器没有使用转发的代理密钥,需要继续排查。
3. 强制远程SSH仅使用代理转发的密钥
如果远程服务器本地存在其他SSH密钥,SSH可能会优先尝试本地密钥而非转发的代理密钥。可以在远程用户的~/.ssh/config文件中添加以下配置(如果文件不存在则创建):
nano ~/.ssh/config
写入内容:
Host github.com IdentityFile /dev/null IdentitiesOnly yes
保存退出后,再次尝试克隆仓库。
4. 确认本地Windows的SSH代理转发配置
虽然你使用了ssh -A参数开启代理转发,也可以检查本地~/.ssh/config文件(若存在)是否包含对应服务器的转发配置:
Host serverip ForwardAgent yes
确保配置正确,避免因本地配置覆盖命令行参数导致的问题。
5. 验证GitHub公钥权限
再次确认你的SSH公钥已添加到GitHub账户,且该账户拥有目标私有仓库的访问权限(比如是仓库所有者、协作者,或者所属组织有仓库访问权限)。
内容的提问来源于stack exchange,提问作者Jacuzzi
相关产品推荐
相关产品推荐

