問(wèn)題描述:
通過(guò)git bash連接到服務(wù)器需要ssh key逞盆,但是我現(xiàn)在只有一個(gè)ppk的文件狡蝶,所以我需要把ppk文件轉(zhuǎn)成ssh key把将。
連接原理:
git連接到遠(yuǎn)程倉(cāng)庫(kù)有兩種方式:
1:http的方式焰枢,http每次使用的時(shí)候都需要填寫(xiě)用戶(hù)名和密碼舀患;
2:ssh方式徽级,ssh方式配置完ssh秘鑰就不用每次填寫(xiě)用戶(hù)名密碼了(可能需要輸入私鑰密碼)。
ssh秘鑰分為公鑰和私鑰是成對(duì)的聊浅,公鑰放到遠(yuǎn)程git倉(cāng)庫(kù)餐抢,私鑰放到本地git倉(cāng)庫(kù),ppk文件就是一個(gè)私鑰低匙,用來(lái)給Tortoisegit客戶(hù)端使用旷痕,并且可以轉(zhuǎn)換成ssh key給git bush使用。
ppk轉(zhuǎn)ssh key:
需要使用Putty Key Generator工具進(jìn)行轉(zhuǎn)換顽冶,點(diǎn)擊load按鈕,
加載已經(jīng)存在的ppk文件欺抗,如果這個(gè)ppk文件讀取需要密碼,輸入密碼后就可以把ppk文件里面的信息讀取出來(lái)强重,然后點(diǎn)擊Conversions菜單绞呈,選擇Export OpenSHH key選項(xiàng)
保存成名為id_rsa文件(沒(méi)有擴(kuò)展名),這個(gè)文件就是ssh 形式的私鑰间景。放到C:/user/用戶(hù)名/.ssh文件夾下(每個(gè)人的文件夾可能不一樣)佃声。這就相當(dāng)于私鑰轉(zhuǎn)換成了把git bash需要的格式。
git bash配置:
進(jìn)行g(shù)it操作發(fā)現(xiàn)還要每次輸入私鑰的密碼拱燃,如下圖所示:
再進(jìn)行如下操作就可以把私鑰的密碼配置給git bash秉溉,這樣以后就不用再輸入這個(gè)密碼了。
ssh-agent
ssh-add
參考:https://stackoverflow.com/questions/10032461/git-keeps-asking-me-for-my-ssh-key-passphrase
使用msysgit Bash on Windows時(shí),需要執(zhí)行下面的命令才能成功啟動(dòng)召嘶。否則接下來(lái)使用ssh-add時(shí)會(huì)出現(xiàn)Could not open a connection to your authentication agent
的錯(cuò)誤:
eval `ssh-agent -s`或eval $(ssh-agent -s)
但是Windows git bush上并不起作用父晶,最后我把私鑰的密碼修改為空,才不用輸入密碼弄跌。
修改秘鑰密碼:
ssh-keygen -p
總結(jié):
Git bush私鑰每次都要輸入密碼甲喝,其實(shí)也是一種安全措施,保護(hù)你的電腦被別人操作時(shí)铛只,不能隨意進(jìn)行g(shù)it操作埠胖。