![Git 权限被拒绝(公钥)错误](https://linux22.com/image/1302184/Git%20%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D%EF%BC%88%E5%85%AC%E9%92%A5%EF%BC%89%E9%94%99%E8%AF%AF.png)
我已多次连接到 github,并且知道如何生成 ssh 密钥并将其放入id_rsa.pub
github 设置中。但由于某种原因,我无法通过此安装连接它。我只是想将私有存储库克隆到新服务器,但当我克隆时,我得到了:
权限被拒绝(公钥)。致命:远程端意外挂断
如果我运行:
ssh -T [email protected]
它告诉我我已经成功验证。
我还能尝试什么?我在 bitnami 堆栈上运行它,所以可能是这导致了问题?这可能是问题所在,我只是不确定该怎么做。.ssh/authorized_keys 目录中已经有一组密钥。我没有动它们,因为这是我连接 putty/pagent 的方式。我将新密钥放在 /.ssh 中,而没有动 authorized_keys。正确的设置方法是什么?我应该删除这两对并重新开始吗?对 putty 和 github 使用相同的密钥?如果出现问题,为什么我仍然要进行身份验证?
答案1
您是否尝试过创建新的 SSH 证书,即密钥对?
1 生成默认密钥对:
$ ssh-keygen -t rsa -C "[email protected]"
如果您已经有 SSH 证书,请不要使用此功能。
2 生成附加密钥对:
$ ssh-keygen -t rsa -C "[email protected]"
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)
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
5 确保在.git/config
与 Github 上的第二个用户帐户关联的 Git 项目的文件中使用了正确的主机名,github-client
但不是github.com
:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github-client:foobarsomeuser/foobar.git
答案2
似乎您的公钥丢失了,或者您在密钥环中放置了错误的公钥。请检查密钥环是否存在~/.ssh
。如果不提及您的操作系统,很难说
.ssh/authorized_keys 目录中已经有一组密钥。
我相信这些是通过 ssh 进入 Linux 服务器所需的密钥。
最好的方法是重新生成一组新的 github 私钥/公钥,将 PK 添加到你的 Linux 服务器密钥环,并将公钥粘贴到Github 账户。
答案3
gnome-keyring-daemon
这是Ubuntu 14.04 LTS 中的一个错误。