Git作為當(dāng)前最受歡迎的版本控制軟件,使用是很頻繁的。但每次使用git push等操作時都要輸入密碼,實在是挺麻煩的。本文對使用SSH與HTTPS兩種通訊協(xié)議討論一下免密碼配置。
注:這個過程在所有操作系統(tǒng)上都是相似的:)
SSH通信協(xié)議
GitHub版
許多Git服務(wù)器都支持使用SSH公鑰進(jìn)行認(rèn)證,當(dāng)然也包括github。
首先你需要確認(rèn)一下自己是否已經(jīng)擁有密鑰了,默認(rèn)情況下,用戶的 SSH 密鑰存儲在其 ~/.ssh 目錄下。進(jìn)入該目錄并列出其中內(nèi)容,你便可以快速確認(rèn)自己是否已經(jīng)擁有密鑰:
$ cd ~/.ssh
$ ls
authorized_keys2 id_rsa known_hosts
config id_rsa.pub
我們需要尋找一對 id_rsa 或 id_dsa 命名的文件,其中一個帶 .pub 擴(kuò)展名。 '.pub'文件是你的公鑰,另一個則是私鑰。如果沒有找不到這樣的文件(或者根本就沒有.ssh目錄),我們可以通過 ssh-keygen 程序來創(chuàng)建它們。
#郵箱可以隨便填
$ ssh-keygen -t rsa -C "xx@xx.com"
首先 ssh-keygen 會確認(rèn)密鑰的存儲位置和文件名(默認(rèn)是 .ssh/id_rsa),然后他會要求你輸入兩次密鑰口令,留空即可。所以一般選用默認(rèn),全部回車即可。
接下來我們登陸到GitHub上,右上角小頭像->Setting->SSH and GPG keys中,點(diǎn)擊new SSH key。
Title:可以隨便填寫,但最好起的名字能讓自己知道這個公鑰是哪個設(shè)備的。
Key:將上面生成的.pub文件中的所有內(nèi)容復(fù)制到這里。
點(diǎn)擊下面的Add SSH key即可。
然后你就會發(fā)現(xiàn)可以免密碼訪問了
Git服務(wù)器
如果服務(wù)端是自己搭建的git服務(wù)器,生成密鑰公鑰對的步驟是一樣的。
然后將生成的 .pub 文件內(nèi)容,導(dǎo)入到git服務(wù)器 /home/git/.ssh/authorized_keys 文件內(nèi),一行一個。
然后你就會發(fā)現(xiàn)git push 不再需要密碼了
搭建git服務(wù)器和相關(guān)免登陸的詳細(xì)步驟可參考我的另一篇 手把手教你搭建git服務(wù)器
HTTPS通信協(xié)議
上面講了SSH方式的免密碼,接下來講一下越來越常用的HTTPS方式的免密碼
新建文件并保存密碼
$ touch ~/.git-credentials
$ vim ~/.git-credentials
添加內(nèi)容
https://{username}:{passwd}@github.com
添加git配置
$ git config --global credential.helper store
查看~/.gitconfig文件變化
[credential]
helper = store
然后在嘗試一下git push不再在需要密碼了
git系列文章
git常用命令及使用心得
手把手教你搭建git服務(wù)器