对于本地PC拉取远程Git项目主要有两种方法:HTTPS 和SSH
-
HTTPS
这种方式比较简单,直接copy https url 就可以clone到本地。这种方式对于新手比较方便。但是每次fetch和push代码都要输入账号和密码。
-
SSH
使用SSH url需要在clone之前配置好SSH Key,这种方式每次fetch和push是不需要再输入账号和密码的。
SSH Key的配置
生成一个新的SSH key
- 打开命令行工具Terminal
- 输入
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
your_email@example.com
是你的GitHub email地址, 然后会收到Generating public/private rsa key pair.
- 输入你的文件名,可以直接按Enter,会默认命名id_rsa。
Generating public/private rsa key pair.
Enter file in which to save the key (/.ssh/id_rsa):
- 然后设定密码,如果不设密码,直接Enter即可
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
- 进入.ssh看是否生成SSH Key
$ cd ~/.ssh
$ ls
id_dsa config id_dsa.pub
可以看到生成id_dsa或者id_rsa命名的文件,有.pub后缀的是公钥,另一个是密钥。
SSH key添加到ssh-agent
- 运行ssh-agent
$ eval "$(ssh-agent -s)"
Agent pid 59566
- 如果是macOS Sierra 10.12.2或者更新的系统,你需要修改
~/.ssh/config
文件,这样可以自动加载keys到ssh-agent
Host *
IdentityFile ~/.ssh/id_rsa
如果你的mac上已经有其他SSH key,cinfig可能已经有其他设置,直接在config后面跟上这两行即可
- 添加你的SSH私钥到ssh-agent和存储你的密码。
$ ssh-add -K ~/.ssh/id_rsa
添加SSH key到GitHub账号
- 复制公钥的内容到黏贴板。公钥的内容以ssh-rsa开头。
$ pbcopy < ~/.ssh/id_rsa.pub
# Copies the contents of the id_rsa.pub file to your clipboard
- 打开您的GitHub首页,点击右上角的头像,打开Settings
- 在设置页的侧边栏,点击
SSH and GPG keys
- 点击
New SSH key
orAdd SSH key
- 在
Title
输入公钥的名字,可以取个自己看得懂的名字。在Key
栏黏贴刚才copy的公钥内容。然后点击Add SSH Key
。完成
测试GitHub连接
$ ssh -T git@github.com
你将会看到
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is ****
Are you sure you want to continue connecting (yes/no)?
输入yes
Hi dragonjiang! You've successfully authenticated, but GitHub does not provide shell access.
可以和GitHub愉快的玩耍了。