【问题标题】:Permission denied on git operations while working via ssh通过 ssh 工作时对 git 操作的权限被拒绝
【发布时间】:2021-10-20 02:16:44
【问题描述】:

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

问题:尝试从 PC 使用 git(Windows 终端、VS Code 终端、VS Code git 功能)时,我收到了 Permission denied (publickey) 消息。如果我试图从笔记本电脑的终端上做同样的事情,一切都很好。 同样,pipenv install 无法从存储库安装依赖项。

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

当我尝试使用 PC SSH 访问我的私人 github 存储库到我的另一台计算机时,不会发生此类事情。 我什至尝试将 PC 上生成的密钥添加到授权的 git 密钥中,但没有任何改进。

编辑:@VonC's answer 让我运行了一个详细的ssh 连接,并显示 ssh-agent 没有为我的远程连接运行,并且只提供了来自~/.ssh/ 的以id_ 开头的密钥,而我的 git 密钥有git_ 前缀。

【问题讨论】:

  • 听起来您的 PC 上没有注册到 git 服务器的 SSH 密钥。

标签: git ssh vpn


【解决方案1】:

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

ssh -Tv git@github.com

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

例如,检查您是否有一个 %USERPROFILE%\.ssh\id_rsa 键,以及它的 .pub content registered to your GitHub account。

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

正如the comments 中的OP seseikelele 注释:

对 git 服务器运行详细的 SSH 显示来自我的 PC 的 shell 会话没有使用 ssh-agent 提供的密钥,只是尝试提供带有 id_ 前缀的密钥。

启动代理允许 Git 在该 shell 实例上获得身份验证。

【讨论】:

  • 对 git 服务器运行详细的 SSH 显示来自我的 PC 的 shell 会话没有使用 ssh-agent 提供的密钥,而只是尝试提供带有 id_ 前缀的密钥。启动代理允许 git 在该 shell 实例上进行身份验证。
  • @seseikelele Welldone,很好的收获。我已将您的评论包含在答案中以提高知名度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-02
  • 1970-01-01
  • 2011-02-11
  • 2011-11-25
  • 1970-01-01
相关资源
最近更新 更多