對(duì)于本地PC拉取遠(yuǎn)程Git項(xiàng)目主要有兩種方法:HTTPS 和SSH
-
HTTPS
這種方式比較簡(jiǎn)單,直接copy https url 就可以clone到本地。這種方式對(duì)于新手比較方便。但是每次fetch和push代碼都要輸入賬號(hào)和密碼。
-
SSH
使用SSH url需要在clone之前配置好SSH Key,這種方式每次fetch和push是不需要再輸入賬號(hào)和密碼的。
SSH Key的配置
生成一個(gè)新的SSH key
- 打開(kāi)命令行工具Terminal
- 輸入
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
your_email@example.com是你的GitHub email地址, 然后會(huì)收到Generating public/private rsa key pair.
- 輸入你的文件名,可以直接按Enter,會(huì)默認(rèn)命名id_rsa。
Generating public/private rsa key pair.
Enter file in which to save the key (/.ssh/id_rsa):
- 然后設(shè)定密碼,如果不設(shè)密碼,直接Enter即可
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
- 進(jìn)入.ssh看是否生成SSH Key
$ cd ~/.ssh
$ ls
id_dsa config id_dsa.pub
可以看到生成id_dsa或者id_rsa命名的文件,有.pub后綴的是公鑰,另一個(gè)是密鑰。
SSH key添加到ssh-agent
- 運(yùn)行ssh-agent
$ eval "$(ssh-agent -s)"
Agent pid 59566
- 如果是macOS Sierra 10.12.2或者更新的系統(tǒng),你需要修改
~/.ssh/config文件,這樣可以自動(dòng)加載keys到ssh-agent
Host *
IdentityFile ~/.ssh/id_rsa
如果你的mac上已經(jīng)有其他SSH key,cinfig可能已經(jīng)有其他設(shè)置,直接在config后面跟上這兩行即可
- 添加你的SSH私鑰到ssh-agent和存儲(chǔ)你的密碼。
$ ssh-add -K ~/.ssh/id_rsa
添加SSH key到GitHub賬號(hào)
- 復(fù)制公鑰的內(nèi)容到黏貼板。公鑰的內(nèi)容以ssh-rsa開(kāi)頭。
$ pbcopy < ~/.ssh/id_rsa.pub
# Copies the contents of the id_rsa.pub file to your clipboard
- 打開(kāi)您的GitHub首頁(yè),點(diǎn)擊右上角的頭像,打開(kāi)Settings
Settings
- 在設(shè)置頁(yè)的側(cè)邊欄,點(diǎn)擊
SSH and GPG keys - 點(diǎn)擊
New SSH keyorAdd SSH key - 在
Title輸入公鑰的名字,可以取個(gè)自己看得懂的名字。在Key欄黏貼剛才copy的公鑰內(nèi)容。然后點(diǎn)擊Add SSH Key。完成
Add Key
測(cè)試GitHub連接
$ ssh -T git@github.com
你將會(huì)看到
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愉快的玩耍了。