Please make sure you have the correct access rightsand the repository exists

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/benben_2015/article/details/85017350

在你拉取git上的代码时,提示上面的错误:你没有正确的权限。这是因为git为了安全起见,对于代码的拉取、合并等操作都采用一套安全策略。即在用户身份没有验证的情况下,是不能进行一系列操作的。
Git支持使用SSH协议,来连接和验证远程服务器和服务。使用SSH密钥,就可以在每次访问时无需提供用户名或密码,即可连接到GitHub

解决方法

检查是否存在SSH key

  1. 打开Git Bash
  2. 输入命令ls -al ~/.ssh,检查是否存在现有SSH密钥
  3. 检查目录列表,查看是否已有SSH公钥。
    例如:
$ ls -al ~/.ssh
total 21
drwxr-xr-x 1 dell 197121    0 12月 15 16:00 ./
drwxr-xr-x 1 dell 197121    0 12月 15 17:21 ../
-rw-r--r-- 1 dell 197121 3389 12月 15 16:00 id_rsa
-rw-r--r-- 1 dell 197121  751 12月 15 16:00 id_rsa.pub
-rw-r--r-- 1 dell 197121  597 12月 15 19:40 known_hosts

如果存在,那么你可以使用这个id_rsa.pub公钥来进行连接。当然你也可以重新生成一个新的公钥,下面就是当你没有一个公钥和私钥对的时候,或者希望重新生成一个用于身份验证的新SSH密钥的做法。

生成一个新的SSH key

  1. 打开Git Bash
  2. 输入命令:$ ssh-keygen -t rsa -b 4096 -C "[email protected]",就会生成一对新的公钥和私钥。其中会提示让你输入需要保存文件的位置,你可以直接按Enter键,这样就会将文件保存到默认的位置。之后还有个提示,让你输入安全密码,你也可以直接按Enter
Generating public/private rsa key pair.
Enter file in which to save the key (/home/benben/.ssh/id_rsa):
Created directory '/home/benben/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/benben/.ssh/id_rsa.
Your public key has been saved in /home/benben/.ssh/id_rsa.pub.
The key fingerprint is:d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 [email protected]
The key's randomart image is:
+---[RSA 4096]----+
|               .=|
|                B|
|        .o    .=o|
|      .oo..  . =E|
|      ooS.. ..*=+|
|       ......o+@o|
|         ..o o=oB|
|         o. =. o=|
|        .oo..o..=|
+----[SHA256]-----+

添加SSH key到你的ssh-agent

不管你是在共有git上,还是私有git上。通常在setting中有关于ssh key的设置选项,例如下面是公有github上的截图。
在这里插入图片描述
将你刚才生成的公钥内容复制到GitHub上,添加完成后,你就不用每次进行git操作时进行身份认证。但是使用SSH密钥,如果有人获得你计算机的访问权限,那么他就可以访问使用该密钥的每个系统。因此为了更安全起见,你可以向SSH密钥添加密码,然后使用ssh-agent安全的保存密码,这样就不必重新输入密码。

添加密码到已经存在的私钥上

之前提到,在创建一个新的私钥对时,你可以设置一个密码。现在假如你在没有设置密码的私钥对上生成一个带有密码的私钥对,那该怎么做。输入命令$ ssh-keygen -p,这个方法同样适合修改私钥对中的密码。

测试连接

当添加完成后,你可以测试一下连接。

  1. 打开Git Bash
  2. 输入命令$ ssh -T [email protected],例如:$ ssh -T [email protected] to GitLab, @benben_2015
    而在不成功的时候,一般会有提示Permission denied(publickey)

猜你喜欢

转载自blog.csdn.net/benben_2015/article/details/85017350