Mac 配置 github ssh key免输账号密码提交代码

github 已经禁用了https通过账号密码提交代码;

现在改为配置ssh免密push/pull代码。

Mac 打开 terminal

cd ~/.ssh

在该目录下创建一对ssh私钥和公钥

ssh-keygen -t rsa -C "your_email@seagm.com"

Creates a new ssh key using the provided email # Generating public/private rsa key pair.
Enter file in which to save the key (/home/you/.ssh/id_rsa):

这里指定密钥文件的名字,默认是 id_rsa, 可以输入其它名字,例如:com_github

然后一路回车即可,提示输入密码那一步,不用输入密码,默认无密码 如果输入了密码,那以后使用这个密钥提交代码就需要再次输入那个密码

执行完后,输入

ls

查看当前目录下的文件,会发现多了两个文件

com_github    com_github.pub

其中 com_github 是私钥,是需要配置到本地电脑环境里的; 带 .pub 的文件是公钥,是需要添加到 github 账号设置中的

登陆 github ,右上角点击头象,选择 Setting 左侧菜单中 选择 SSH, 点击 添加新的SSH Key,这里的 key 的内容就是上面 com_github.pub 文件的内容

查看 com_github.pub 的内容

cat com_github.pub

将内容复制到 github 表单中,添加一个标题,提交保存。

本地terminal 上测试一下,能否连上 github

wenqidong@wenqidongdeMBP2 .ssh % ssh -T git@github.com
git@github.com: Permission denied (publickey).

连接不上,因为本地私钥还没有配置

检查一下本地的ssh代理是否在工作,不出异外的话,会返回 Agent pid

wenqidong@wenqidongdeMBP2 .ssh % eval $(ssh-agent -s)
Agent pid 97364

添加本地的私钥

wenqidong@wenqidongdeMBP2 .ssh % ssh-add com_github 
Identity added: com_github (wenqidong@seagm.com)

再次测试连接 github

wenqidong@wenqidongdeMBP2 .ssh % ssh -T git@github.com
Hi wqd1688! You've successfully authenticated, but GitHub does not provide shell access.

已经连接成功

备注:可能出现的情况

当你换了一个 terminal 窗口,可能发现不能连接 github 了,那么试一下在 添加本地私钥的时候,在命令前加一个 sudo

wenqidong@wenqidongdeMBP2 .ssh % sudo ssh-add com_github
Password:
Identity added: com_github (wenqidong@seagm.com)

如果提示输入密码,那就输入一下密码就好了。