通过 ssh 工作时 git 操作的权限被拒绝

Permission denied on git operations while working via ssh

背景故事:我正在使用通过 SSH 连接到 Ubuntu 笔记本电脑的 Windows PC。这台笔记本电脑通过 VPN 连接到公司网络。公司使用 gitea(如果相关)。

问题:尝试从 PC(Windows 终端、VS Code 终端、VS Code git 功能)使用 git 时,我收到一条 Permission denied (publickey) 消息.如果我尝试从笔记本电脑上的终端执行相同操作,一切正常。 同样,pipenv install 从存储库安装依赖项失败。

可视化:)
[Laptop]: git pull 结果拉取成功
[PC --ssh-> Laptop]: git pull 导致权限被拒绝

当我尝试通过 PC ssh 访问我的私人 github 存储库到我的另一台计算机时,没有发生这样的事情。 我什至尝试将 PC 上生成的密钥添加到授权的 git 密钥,但没有任何改进。

编辑: 使我 运行 成为一个冗长的 ssh 连接,并表明 ssh-agent 不是 运行 用于我的远程连接并且只提供密钥来自以 id_ 开头的 ~/.ssh/,而我的 git 键有一个 git_ 前缀。

首先从一个简单的 CMD 进行测试:

ssh -Tv git@github.com

这将显示 SSH 将尝试使用的密钥的路径。

例如,检查您是否有 %USERPROFILE%\.ssh\id_rsa 密钥,其 .pub content registered to your GitHub account

请注意,在我自己公司的笔记本电脑上,通过 VPN 连接,我将无法执行 Egress SSH 操作:egress.

禁用了 SSH

作为 OP seseikelele notes in :

Running verbose SSH to the git server revealed that shell sessions from my PC didn't use keys provided by ssh-agent and just tried to offer keys wih id_ prefix.

Starting the agent allowed Git to get authenticated on that one shell instance.