这是我第一次访问GitHub,我没有使用控制台的经验。我在MacBook上使用Bash。当我尝试访问GitHub时,我得到了这个:

git clone git@github.com:dhulihan/league-of-legends-data-scraper.git
Cloning into 'league-of-legends-data-scraper'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我试着按照Github页面上关于拒绝许可的说明进行操作。

当我使用ssh -vT git@github.com时,我得到以下结果:

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to github.com [192.30.252.129] port 22.
debug1: Connection established.
debug1: identity file /Users/XXXX/.ssh/id_rsa type -1
debug1: identity file /Users/XXXX/.ssh/id_rsa-cert type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version libssh-0.6.0
debug1: no match: libssh-0.6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /Users/XXXX/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/XXXX/.ssh/id_rsa
debug1: Trying private key: /Users/XXXX/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

接下来,eval "$(ssh-agent -s)"返回"Agent pid 2314", 但是ssh-add -l返回“代理没有身份”。

这就是我被困住的地方。


当前回答

首先,您需要进入SSH目录 对于这个类型,在你的终端MAC或任何你在window中使用的命令

cd ~/.ssh

现在它在SSH中 在这里,您可以找到所有与您所有项目相关的SSH密钥/文件。现在,输入以下命令来显示是否有可用的SSH密钥

ls

这将显示所有可用的ssh,在我的例子中有两个 现在,您需要启动一个代理,在其中添加一个SSH。对于这种类型,下面的命令

eval "$(ssh-agent -s)"

现在,最后但并非最不重要的是,您将在以下命令的代理类型中添加SSH

ssh-add ~/.ssh/your-ssh

取代

用你的SSH文件名替换你的SSH文件名,你从第二步ls命令中得到了一个列表

其他回答

BitBucket的步骤:

如果你不想生成新的密钥,跳过ssh-keygen

ssh-keygen -t rsa 

将公钥复制到剪贴板:

clip < ~/.ssh/id_rsa.pub

登录位桶: 进入“查看配置文件”->设置-> SSH密钥(在“安全”页签中) 单击“添加密钥”, 将键粘贴在方框中,并添加描述性标题

回到Git Bash:

ssh-add -l

你应该得到:

2048 SHA256:5zabdekjjjaalajafjLIa3Gl/k832A /c/Users/username/.ssh/id_rsa (RSA)

现在:git拉应该工作

这可能导致任何新终端,代理id是不同的。 您需要为代理添加私钥

$ ssh-add <path to your private key>

我在从备份恢复硬盘驱动器后遇到了这个问题。

我的问题: 我可以检查和看到我的远程(使用git remote -v),但当我执行git push origin master时,它返回:Permission denied (publickey)。无法从远程存储库读取。

我已经有一个SSH文件夹和SSH密钥,并通过终端(SSH -add /path/to/my- SSH -folder/id_rsa)添加它们成功添加了我的身份,但我仍然无法推送,仍然得到相同的错误。生成一个新密钥对我来说是一个坏主意,因为它与AWS上其他非常安全的权限绑定在一起。

事实证明,密钥和我的Github个人资料之间的链接已经断开。

解决方案: 在配置文件>设置>中重新添加密钥到Github, SSH和GPG密钥解决了这个问题。

另外: 我的账户设置了双重认证。在这种情况下,如果终端请求凭据,使用您的用户名-而不是您的Github密码。对于2因素身份验证,您需要使用您的身份验证代码(对我来说,这是由我手机上的Authy生成的,我必须将其复制到终端的pw中)。

这招对我很管用: Chmod 700 .ssh Chmod 600 .ssh/id_rsa . exe Chmod 644 .ssh/id_rsa.pub

然后,输入这个: ssh-add ~ / . ssh / id_rsa

我也曾被同样的问题困扰过一段时间,但最终还是解决了。

我的问题是:我无法执行任何推送。我可以检查和看到我的远程(使用git remote -v),但当我执行git push origin master时,它返回:Permission denied (publickey)。无法从远程存储库读取。所以。

我是怎么解决的:

I generated a key using ssh-keygen -t rsa. Entering a name for the key file (when asked) was useless. I could then add the key (to git): ssh-add /Users/federico/.ssh/id_rsa , which successfully returned Identity added: /Users/myname/.ssh/id_rsa (/Users/myname/.ssh/id_rsa) I added the SSH key to github using this help page. Having tried all the commands in Github's 'Permission denied publickey' help page, only the ssh-add -l command worked / seemed useful (after having ran the previous steps), it successfully returned my key. The last step shows you where to check your public key on your GitHub page. And this command will help you check all your keys : ls -al ~/.ssh.

然后推送命令终于起作用了!

我希望这对你有所帮助! 祝大家好运。