这一切都是源于智障的我在
创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
并没有一路回车,而是设置了一个文件名,让ssh储存在这个文件里。然后主目录下的.ssh文件夹里面没有id_rsa.pub和id_rsa文件(而是储存在了主目录下),这时,当前没有在使用的ssh key(虽然公钥和私钥都已经生成了,但是位置不对git找不到啊!
也可以通过这条命令来查看是否有ssh key在使用:
ssh -vT git@
debug1: identity file /Users/you/.ssh/id_rsa type -1debug1: identity file /Users/you/.ssh/id_rsa-cert type -1debug1: identity file /Users/you/.ssh/id_dsa type -1debug1: identity file /Users/you/.ssh/id_dsa-cert type -1…debug1: Authentications that can continue: publickeydebug1: Next authentication method: publickeydebug1: Trying private key: /Users/you/.ssh/id_rsadebug1: Trying private key: /Users/you/.ssh/id_dsadebug1: No more authentication methods to try.Permission denied (publickey).
注意到上面的命令中,-1说明找不到ssh key 文件。Trying private key也说明了这个问题。
如果连接正常,输出应该是下面这样:
debug1: identity file /Users/you/.ssh/id_rsa type 1…debug1: Authentications that can continue: publickeydebug1: Next authentication method: publickeydebug1: Offering RSA public key: /Users/you/.ssh/id_rsa
那么把主目录下的两个公钥私钥文件移到.ssh文件夹下就好了。
参考:github:Error: Permission denied (publickey)解决方法
/en/github/authenticating-to-github/error-permission-denied-publickey#always-use-the-git-user