Github 添加 ssh 公钥

Github add ssh key

Posted by Randle on July 1, 2019

Github上配置个人电脑公钥是个常规操作,今天配置的时候出了一些问题,记录在此。

本机生成公钥操作

1
ssh-keygen -t rsa -C "mail_user_name@mail_server.com"

后面出现的提示,可以默认回车,在 ~/.ssh/目录下,出现下面的文件:

1
2
id_rsa			#私钥
id_rsa.pub		#公钥

到这里,公钥和私钥就创建完成了,下一步将公钥放到Github上面。

Github 添加公钥

  1. 登陆Github账号;
  2. 复制前面生成的id_rsa.pub 的内容到 Github/Setting/SSH and GPG keys 中,在SSH下面创建新的条目;

至此,添加完成。

私钥权限问题

按照上面的两步配置之后遇到了一个问题,shell 返回如下:

1
2
3
4
5
6
7
8
9
10
Warning: Permanently added 'github.com,13.229.188.59' (RSA) to the list of known
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0670 for '~/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "~/.ssh/id_rsa": bad permissions
Permission denied (publickey).
fatal: Could not read from remote repository.

这个错误表达的是,.ssh目录下的私钥的权限,可以被本机的其他用户访问,所以在SSH鉴权的时候被忽略了,无法与远端的公钥配对。

解决办法就是,去掉 id_rsa 私钥文件其他用户的访问权限;

1
chmod 600 ~/.ssh/id_rsa

验证

通过下面的方法可以验证公钥配置成功:

1
ssh -T git@github.com 

返回下面的结果时候,验证成功:

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

其中的 USER_NAMEGithub 用户名。