問題描述:
通過git bash連接到服務器需要ssh key,但是我現在只有一個ppk的文件,所以我需要把ppk文件轉成ssh key。
連接原理:
git連接到遠程倉庫有兩種方式:
1:http的方式,http每次使用的時候都需要填寫用戶名和密碼;
2:ssh方式,ssh方式配置完ssh秘鑰就不用每次填寫用戶名密碼了(可能需要輸入私鑰密碼)。
ssh秘鑰分為公鑰和私鑰是成對的,公鑰放到遠程git倉庫,私鑰放到本地git倉庫,ppk文件就是一個私鑰,用來給Tortoisegit客戶端使用,并且可以轉換成ssh key給git bush使用。
ppk轉ssh key:
需要使用Putty Key Generator工具進行轉換,點擊load按鈕,
加載已經存在的ppk文件,如果這個ppk文件讀取需要密碼,輸入密碼后就可以把ppk文件里面的信息讀取出來,然后點擊Conversions菜單,選擇Export OpenSHH key選項
保存成名為id_rsa文件(沒有擴展名),這個文件就是ssh 形式的私鑰。放到C:/user/用戶名/.ssh文件夾下(每個人的文件夾可能不一樣)。這就相當于私鑰轉換成了把git bash需要的格式。
git bash配置:
進行git操作發現還要每次輸入私鑰的密碼,如下圖所示:
再進行如下操作就可以把私鑰的密碼配置給git bash,這樣以后就不用再輸入這個密碼了。
ssh-agent
ssh-add
參考:https://stackoverflow.com/questions/10032461/git-keeps-asking-me-for-my-ssh-key-passphrase
使用msysgit Bash on Windows時,需要執行下面的命令才能成功啟動。否則接下來使用ssh-add時會出現Could not open a connection to your authentication agent
的錯誤:
eval `ssh-agent -s`或eval $(ssh-agent -s)
但是Windows git bush上并不起作用,最后我把私鑰的密碼修改為空,才不用輸入密碼。
修改秘鑰密碼:
ssh-keygen -p
總結:
Git bush私鑰每次都要輸入密碼,其實也是一種安全措施,保護你的電腦被別人操作時,不能隨意進行git操作。