Git为什么需要SSH keys
因为Github需要识别提交代码的用户身份,以防他人冒充。而Github支持SSH协议,所以只要知道了SSH key的公钥,就可以实现前述需求了。
如何新建SSH keys
如果是Mac OS,可以在Terminal中进入~/.ssh目录查看是否已存在key。通常SSH key是以id_rsa开头的文件,其中id_rsa.pub是公钥,后续要添加在Github中。
如果不存在id_rsa文件,可通过在Terminal中输入如下命令生成:
ssh-keygen -t rsa -C "youremail@example.com"
注意
- 记得将**“youremail@example.com”**替换为自己的邮件地址;
- 交互过程直接回车键,使用默认即可。
在哪里添加SSH keys
在Terminal中输入如下命令,拷贝id_rsa.pub内容至剪贴板:
cat id_rsa.pub| pbcopy
然后登陆Github网站,进入Settings页面。如下图所示:
点击右上角的“New SSH key”按钮,在新页面的“Key”粘贴id_rsa.pub内容,即可新增SSH key。
如何配置多个GitHub账户
在新建SSH keys时根据提示,输入指定的key名称,例如:
id_rsa_{company_name}
然后配置ssh的config文件,一般在~/.ssh/config。内容如下:
Host github.com
HostName github.com
User {github_account1}
IdentityFile ~/.ssh/id_rsa
Host {company_name}
HostName github.com
User {github_account2}
IdentityFile ~/.ssh/id_rsa_{comany_name}
如何验证GitHub账户配置成功
可以在终端输入如下命令验证:
ssh -T git@{config-Host}
如果命令行终端返回如下内容:
Hi {github_account}! You've successfully authenticated, but GitHub does not provide shell access.
则表示配置成功。
如何指定GitHub账户下载代码
命令如下:
git clone git@{config-Host}:username/repo.git