ssh-key
本文将介绍的是如何在 mac 上上配置 SSH Key 中的 private key。
在 Mac 上配置 SSH Key 中的 private key
当往github的项目上提交代码时,github需要知道你电脑上有没有和那些Deploy keys中某个public key配对的private key。接下来就是配置怎样找到这个private key
- 生成 1 个 SSH Key:
1 | $ ssh-keygen -t rsa -C "youremail@xxx.com" |
按回车后
1 | Generating public/private rsa key pair. |
最好每次生成时都给SSH Key取个名字,这样后面在管理时自己也一目了然。我这里的格式是id_rsa_项目名_git提供方,我生成的所有key都遵循这个规则命名。建议你也有你自己的一种命名方式,并且保持统一。如果不取名字,默认的是id_rsa,如果后面生成时不命名,会把这个覆盖掉。密码可以不设置,免得每次提交时还要输入一次,安全性自己衡量吧。第一次生成key时,会在~目录下创建一个.ssh目录。
1 | $ cd ~/.ssh |
把
id_rsa_TestSSH_github.pub添加到github对应的项目的Deploy keys中。
ssh服务器默认是去找id_rsa,现在需要把这个key添加到ssh-agent中,这样ssh服务器才能认识id_rsa_TestSSH_github
1 | $ ssh-add -K ~/.ssh/id_rsa_TestSSH_github |
这里为什么加上了一个-K 参数呢?因为在 Mac 上,当系统重启后会“忘记”这个密钥,所以通过指定-K 把 SSH key 导入到密钥链中
查看添加结果:
1 | $ ssh-add -l |
- 创建本地的配置文件 ~/.ssh/config,编辑如下:
1 | Host TestSSH.github.com |
Host 的名字可以随意取,我这边按照的规则是项目名.git 服务器来源,接下来会用到这个名字。测试是否配置正确:
1 | $ ssh -T git@TestSSH.github.com (就是刚刚你给Host取的名字) |
敲一下回车,如下出现下面的提示就连接成功了:
1 | Hi MrSeaWave/TestSSH! You've successfully authenticated, but GitHub does not provide shell access. |
一定要注意哦,帐号名称/项目名称,如果这个 key 没有连接成功,它有可能提示的是别的 key 的。
- 修改 github 项目配置,使项目本身能关联到使用的 key。
如果你在之前已经把项目 clone 到本地了,有两种解决方法:
(1) 打开项目目录/.git/config,将[remote “origin”]中的url中的github.com修改为TestSSH.github.com,就是你在第 4 步中给Host取的那个名字。如下:
1 | remote "origin"] |
(2) 也可以在提交时修改
1 | $ git remote rm origin |
如果还没有 clone 到本地,则在 clone 时可以直接将github.com改为TestSSH.github.com,如下:
1 | $ git clone git@TestSSH.github.com:MrSeaWave/TestSSH.git |
Happy Coding😄


