Git 权限被拒绝(公钥)错误

zac*_*zac 6 ssh git

我已经多次连接到 github 并且知道如何生成 ssh 密钥并将其id_rsa.pub放入 github 设置中。但是由于某种原因,这个安装我无法连接。我只是想将私有存储库克隆到新服务器,但是当我克隆时,我得到:

权限被拒绝(公钥)。致命:远端意外挂断

如果我运行:

ssh -T git@github.com
Run Code Online (Sandbox Code Playgroud)

它告诉我我已成功通过身份验证。

我还能尝试什么?我在 bitnami 堆栈上运行它,所以也许这会导致问题?这可能是问题所在,我只是不知道该怎么办。.ssh/authorized_keys 目录中已经有一组密​​钥。我不理会这些,因为这就是我与腻子/pagent 连接的方式。我将新密钥放在 /.ssh 中并单独留下了 authorized_keys。设置它的正确方法是什么?我应该删除两对并重新开始吗?putty 和 github 使用相同的密钥?如果出现问题,为什么我仍然进行身份验证?

Com*_*ist 7

您是否尝试过创建新的 SSH 证书,即密钥对?

1 生成默认密钥对:

$ ssh-keygen -t rsa -C "defaultuser@gmail.com"
Run Code Online (Sandbox Code Playgroud)

如果您已经拥有 SSH 证书,请不要使用它。

2 生成额外的密钥对:

$ ssh-keygen -t rsa -C "seconduser@gmail.com"
Run Code Online (Sandbox Code Playgroud)

3 添加非默认键

$ ssh-add ~/.ssh/id_rsa_seconduser
Enter passphrase for /Users/defaultuser/.ssh/id_rsa_seconduser: 
Identity added: /Users/defaultuser/.ssh/id_rsa_defaultuser  (/Users/defaultuser/.ssh/id_rsa_defaultuser)
Run Code Online (Sandbox Code Playgroud)

4 设置 SSH 配置文件 ( ~/.ssh/config),以便 SSH 知道哪个密钥用于哪个服务器:

Host github.com
  HostName github.com
  User git
  IdentityFile /Users/XXXUser/.ssh/id_rsa

Host github-client
  HostName github.com
  User git
  IdentityFile /Users/XXXUser/.ssh/id_rsa_XXXSECONDUSER
Run Code Online (Sandbox Code Playgroud)

5 确保在.git/config与 Github 上的第二个用户帐户关联的 Git 项目的文件中,您使用的是正确的主机名,github-client但不是github.com

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github-client:foobarsomeuser/foobar.git
Run Code Online (Sandbox Code Playgroud)