git配置——解決git每次pull/push都要密碼的問題以及git ssh配置掀抹,原理
一.解決git每次pull/push都要密碼
如果我們git clone的代碼的時(shí)候用的是連接的https://而不是git@git (ssh)的形式攀唯,當(dāng)我們操作git pull/push到遠(yuǎn)程的時(shí)候,總是提示我們輸入賬號(hào)和密碼才能操作成功渴丸,頻繁的輸入賬號(hào)和密碼會(huì)很麻煩侯嘀。
解決辦法:
git bash進(jìn)入你的項(xiàng)目目錄,輸入:
git config --global credential.helper store
然后就會(huì)提示讓你輸入一次用戶名和密碼谱轨,然后這個(gè)用戶密碼其實(shí)保存在本地了戒幔,下次在git pull/push的時(shí)候就不在輸入了。
二.git ssh配置
上面說了git下載代碼用的https://也是可以用git clone ssh://XXX
下面在說明怎么配置git ssh:
1.找一個(gè)能輸入命令的終端cmd或者git bash都可以打開輸入
ssh-keygen 回車
可以能出現(xiàn)一下的要求確定的就直接按回車就可以
2.然后出現(xiàn)生成ssh公鑰和私鑰的保存地址土童,id_rsa.pub是公鑰诗茎,id_rsa私鑰
3.去保存你地址復(fù)制公鑰,打開復(fù)制
4.粘貼在gitlab(你是從gitlab下載代碼),或者在github(代碼在github上交互的)上面献汗,
eg:點(diǎn)擊gitLab自己登陸頁面的setting--SSH Keys
注意:貼公鑰敢订;Title下面可以寫上自己取的名字給這次添加的key,為了添加多個(gè)可以辨識(shí)(主要辨識(shí)是不同的終端罢吃,就是的不同的電腦生成的)
二.git的ssh key和原理
SSH登錄安全性由非對(duì)稱加密保證楚午,產(chǎn)生密鑰時(shí),一次產(chǎn)生兩個(gè)密鑰尿招,一個(gè)公鑰矾柜,一個(gè)私鑰,在git中一般命名為id_rsa.pub, id_rsa就谜。那么如何使用生成的一個(gè)私鑰一個(gè)公鑰進(jìn)行驗(yàn)證呢怪蔑?
本地生成一個(gè)密鑰對(duì),其中公鑰放到遠(yuǎn)程主機(jī)丧荐,私鑰保存在本地當(dāng)本地主機(jī)需要登錄遠(yuǎn)程主機(jī)時(shí)缆瓣,本地主機(jī)向遠(yuǎn)程主機(jī)發(fā)送一個(gè)登錄請(qǐng)求,遠(yuǎn)程收到消息后虹统,返回一個(gè)隨機(jī)生成的字符串弓坞,本地拿到該字符串,用存放在本地的私鑰進(jìn)行加密窟却,再次發(fā)送到遠(yuǎn)程昼丑,遠(yuǎn)程用之前存放在遠(yuǎn)程的公鑰對(duì)本地發(fā)送過來加密過的字符串進(jìn)行解密,如果解密后與源字符串等同夸赫,則認(rèn)證成功。
總結(jié):就是本地與遠(yuǎn)程交互的時(shí)候咖城,本地用私鑰加密遠(yuǎn)程的傳來的字符串茬腿,再返回給遠(yuǎn)程呼奢,遠(yuǎn)程用公鑰解密與原字符串相同,認(rèn)證成功切平。
特點(diǎn):ssh方式單獨(dú)使用非對(duì)稱的秘鑰進(jìn)行認(rèn)證和加密傳輸握础,和賬號(hào)密碼分離開來,不需要賬號(hào)也可以訪問repo悴品。生成和管理秘鑰有點(diǎn)繁瑣禀综,需要管理員添加成員的public key。不能進(jìn)行匿名訪問苔严,ssh不利于對(duì)權(quán)限進(jìn)行細(xì)分定枷,用戶必須具有通過SSH協(xié)議訪問你主機(jī)的權(quán)限,才能進(jìn)行下一步操作届氢,比較適合內(nèi)部項(xiàng)目