windows使用ssh绑定GitHub/Gitee远程仓库

430 阅读2分钟

今天在提交代码到远程分支的时候突然报错:Please make sure you have the correct access rights and the repository exists,用翻译软件翻译了一下:请确保您具有正确的访问权限并且存储库存在。大概意思就是ssh key有问题,连接不上服务器,这个时候我们就需要重新生成一下ssh绑定到github,也顺便整理一下怎么使用ssh绑定GitHub/Gitee远程仓库。

解决步骤:

  • 1.设置用户名和邮箱

 git config --global user.name "你的昵称"   // git config --global user.name "chuxiao"
 git config --global user.email "你的邮箱"  // git config --global user.email "zh.chuxiao@gmail.com"
  • 2.删除.ssh文件夹下的known_hosts(如果之前生成过ssh)

在 C:\Users\用户名 这个目录之下找到 .ssh 文件夹,删除 .ssh 文件夹下的known_hosts

image.png

3、打开终端执行 ssh-keygen 命令生成对公私钥

ssh-keygen -t rsa -C "你的邮箱"   // ssh-keygen -t rsa -C "zh.chuxiao@gmail.com"

输入命令回车后会出现以下提示

Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\chuxiao/.ssh/id_rsa):

在这里就是设置存储地址了.我们直接按回车即可。

  • 如果正常运行的话,会出现:
Enter passphrase (empty for no passphrase): // 输入密码(无密码为空)

这里无密码的话直接回车就可以了。

  • 如果出现以下提示,这说明你已经设置过存储地址
C:\Users\chuxiao/.ssh/id_rsa already exists.   // C:\Users\chuxiao/.ssh/id_rsa 已经存在
Overwrite (y/n)?                               // 覆盖(y/n)?

我们输入“y”覆盖,之后回车就会出现上面那个提示,跟上面一样直接回车即可。

接下来就是下一个提示:

Enter same passphrase again:   // 再次输入相同的密码

上面我们的密码为空,所以这里直接回车就行。

回车之后你就会看见:

The key fingerprint is:
SHA256:9qtd7V7+pMGgJ2KXNCro/iH6M9omYe87Gza7SlfDQA4 zh.chuxiao@gmail.com
The key's randomart image is:
+---[RSA 3072]----+
|  E .            |
|   +             |
|    o            |
|     o           |
|      + S o .    |
|  o  o o + + +   |
| ..oB o + * o + o|
| ..**= + + = . * |
|  +O@O. ..o  .+ +|
+----[SHA256]-----+

出现这段提示就说明SSH key已经生成了。文件目录就在 C:\Users\用户名 这个目录之下的 .ssh 文件夹

4.我们执行cat命令查看文件的内容:

继续在终端执行以下命令:

cat C:\Users\ө\.ssh\id_rsa.pub

复制打开的 id_rsa.pub 文件内的所有内容

5.将新生成的ssh key添加到GitHub

打开github.com/登陆你的账户,进入Settings(设置)>>

然后进入ssh设置>>

点击 New SSH key 按钮

image.png

将我们复制好的ssh粘贴进去,这里的Title是标题,随便输入一个就好。

image.png

添加完成以后点击 Add SSH Key 按钮就成功添加了

6.验证是否成功,在终端输入ssh -T git@github.com

如果是第一次的会提示是否continue,输入yes就会看到:

Hi UserName! You've successfully authenticated, but GitHub does not provide shell access.

这就表示已成功连上github。

7.完活,可以往远程仓库提交代码或者拉取了!!!