? ? 在使用git bash命令行的時(shí)候粘衬,每次push代碼到遠(yuǎn)端的時(shí)候,總會(huì)需要輸入賬號(hào)和密碼新娜。這是因?yàn)閏lone項(xiàng)目到本地的時(shí)候桅滋,使用的是https的方式提交和驗(yàn)證賬號(hào)慧耍。如果使用ssh秘鑰身辨,則可以不用輸入賬號(hào)和密碼。
1芍碧、生成密鑰對(duì)
? ? 首先看看系統(tǒng)中是否存在ssh秘鑰:
# cd ~/.ssh
# ls -a
? ? 關(guān)鍵是看有沒有用 something 和 something.pub 來命名的一對(duì)文件煌珊,這個(gè) something 通常就是 id_dsa 或 id_rsa。有 .pub后綴的文件就是公鑰泌豆,另一個(gè)文件則是密鑰定庵。假如沒有這些文件,或者干脆連 .ssh 目錄都沒有踪危,可以用 ssh-keygen 來創(chuàng)建蔬浙。
# ssh-keygen -t rsa -C "your_email@youremail.com"
? ? 會(huì)提示保存秘鑰的文件,直接回車即可
Enter file in which to save the key (/home/you/.ssh/id_rsa):
? ? 然后陨倡,會(huì)提示輸入密碼敛滋。輸入的密碼和你github的密碼無關(guān),隨便輸入兴革,也可以不輸入。
# Enter passphrase (empty for no passphrase):?
# Enter same passphrase again:
? ? 秘鑰生成完成
2蜜唾、把公鑰添加到GitHub
登錄到github.com杂曲,進(jìn)入個(gè)人設(shè)置,選擇SSH and GPG keys袁余。把第一步生成的公鑰id_rsa.pub里的內(nèi)容擎勘,復(fù)制到輸入框里,保存即可颖榜。
# ssh -T git@github.com ? ? ? ? ? ? ? ? ?#測(cè)試秘鑰是否可用
驗(yàn)證第一步輸入的密碼......
Hi xxx! You've successfully authenticated, but GitHub does not # provide shell access.
3棚饵、修改不使用https,轉(zhuǎn)而使用ssh
# cd到某個(gè)git分支目錄下
# git remote -v
origin https://github.com/someaccount/someproject.git (fetch)
origin https://github.com/someaccount/someproject.git (push)
? ? 登錄到GitHub掩完, 找個(gè)這個(gè)項(xiàng)目的ssh對(duì)應(yīng)的.git的URL噪漾,復(fù)制之
# git remote set-url origin git@github.com:someaccount/someproject.git
? ? 完成之后,使用git remote -v命令且蓬,可以看到已經(jīng)修改為git@github.com:someaccount/someproject.git
? ? ? ? OK欣硼,此時(shí)再次push代碼時(shí),不會(huì)再出現(xiàn)輸入賬號(hào)密碼了恶阴。奇怪的是诈胜,可能是因?yàn)榈谝徊皆O(shè)置了密碼,導(dǎo)致我現(xiàn)在每次提交代碼冯事,都需要輸入一次密碼(賬號(hào)倒是不用輸入了)焦匈。