【问题标题】:Can't operate GitHub repository using SSH无法使用 SSH 操作 GitHub 存储库
【发布时间】:2021-12-31 19:46:12
【问题描述】:

我正在尝试某些 git 操作,例如 pullpush 等,但没有一个有效: 权限被拒绝(公钥)。 致命:无法从远程存储库中读取。 请确保您拥有正确的访问权限 并且存储库存在。

我做过的事情:

  1. 检查远程是否是 ssh 的:git remote -v

    来源 git@github.com:USERNAME/REPOSITORY.git (fetch)

    来源 git@github.com:USERNAME/REPOSITORY.git(推送)

  2. 检查 ssh 代理是否正在运行:eval "$(ssh-agent -s)"

    代理 pid 123456

  3. 将私钥添加到 ssh 代理:ssh-add "path_to_private_key_file"

    添加的身份:“path_to_private_key_file”(email@provider.com)

  4. 在“https://github.com/settings/ssh/new”处将公钥添加到 Github

  5. 检查 ssh 连接是否正常:ssh -T git@github.com

    您好,用户名!您已成功通过身份验证,但 GitHub 不提供 shell 访问权限。

【问题讨论】:

  • 那么,该密钥所属的用户是否有权访问存储库?您确定存储库 URL 是正确的吗?
  • 是的,用户(我)确实有权访问存储库。我只需要从 HTTPS 更改为 SSH,是的,URL 是正确的:我从存储库克隆弹出窗口中复制了它(无需手动输入)。
  • 我只需要从 HTTPS 更改为 SSH ... 这是否意味着现在一切正常?
  • @torek 不。正如我们在图片中看到的那样,我已经复制了上述所有步骤,但并没有让它发挥作用。
  • 并且您确定用户名(已被图像屏蔽)有权访问相关存储库?现在是时候让 GitHub 支持参与进来了。尽管您可能会先做另一件事,即运行 GIT_TRACE=1 git fetch 以观察 Git 运行的 ssh 命令(如果您在 Windows 上,Git(带有 ssh 客户端)和 Windows 本身之间存在不匹配,后者附带一个 ssh 客户端)。

标签: windows git github ssh ssh-agent


【解决方案1】:

假设:

  • 你没有环境变量GIT_SSH
  • 你的%PATH%首先引用C:\Program Files\Git\usr\bin\ssh.exe

确保:

  • 您的远程源 URL 是 git@github.com:me/myRepo
  • 您有一个 %USERNAME%\.ssh\config 文件,它设置了正确的私钥文件路径,假设它不是默认路径 (id_rsa)。

该配置文件将是(同样,仅当私钥不是默认密钥时):

Host github.com
  Hostname github.com
  User git
  IdentityFile C:\path\to\private\key\file

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 2019-10-03
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    相关资源
    最近更新 更多