github/gitlab ssh-key公钥各种问题 解决

一、window

0.  cd ~/.ssh ls来查看是否有文件id_rsa以及文件id_rsa.pub

1. 首先,如果你没有ssh key的话,在ternimal下输入命令:ssh-keygen -t rsa -C "youremail@example.com", youremail@example.com改为自己的邮箱即可,途中会让你输入密码啥的,不需要管,一路回车即可,会生成你的ssh key。(如果重新生成的话会覆盖之前的ssh key。)

 

2.然后再ternimal下执行命令:

   ssh -v git@github.com

  最后两句会出现:

  No more authentication methods to try.  

  Permission denied (publickey).

 

3.这时候再在ternimal下输入:

  ssh-agent -s

  然后会提示类似的信息:

  SSH_AUTH_SOCK=/tmp/ssh-GTpABX1a05qH/agent.404; export SSH_AUTH_SOCK;  

  SSH_AGENT_PID=13144; export SSH_AGENT_PID;  

  echo Agent pid 13144;

 

4.接着再输入:

  ssh-add ~/.ssh/id_rsa

  这时候应该会提示:

  Identity added: ...(这里是一些ssh key文件路径的信息)

  (注意)如果出现错误提示:

  Could not open a connection to your authentication agent.

  请执行命令:eval `ssh-agent -s`后继续执行命令 ssh-add ~/.ssh/id_rsa,这时候一般没问题啦。

5.打开你刚刚生成的id_rsa.pub,将里面的内容复制,进入你的github账号,在settings下,SSH and GPG keys下new SSH key,title随便取一个名字,然后将id_rsa.pub里的内容复制到Key中,完成后Add SSH Key。

 

6.最后一步,验证Key

  在ternimal下输入命令:

  ssh -T git@github.com

  提示:Hi xxx! You've successfully authenticated, but GitHub does not provide shell  access.

 

7.验证是否添加成功

ssh -T git@gitlab.com
如果是公司的git则
ssh -T git@example.com
ssh -T git@github.com

我们就可以愉快的使用ssh协议进行代码的拉取以及提交等操作了

 我们为什么要使用ssh协议呢?因为ssh更加安全,然后更加方便,比如我们公司的gitlab由http协议换成了https协议,那么如果你是使用http协议管理代码,那么需要修改所有的项目中的git地址变成https,这会把我们给逼疯的!但是如果我们一开始就是用ssh协议,这不需要任何的修改,简直不能再爽一点了。

 

一句话:本地(注册gitlab的邮箱)生成公钥--------注册邮箱登录gitlab------头像--setting---ssh-keys添加.pub文件内容

有些公司(网易)需要将公钥传到zero平台、OTP将军令动态密码

 git config --global credential.helper store 永久保存密码

posted @ 2019-11-03 22:54  web-小强  阅读(4815)  评论(0编辑  收藏  举报