windows下給 Git Bash 添加ssh key私鑰實現git免密



git如果使用http/https協議,每次push時都會提示輸入用戶名和密碼,使用ssh秘鑰(git協議)則可以避免這一麻煩。

1.添加ssh key私鑰

依次執行以下命令:

 

exec ssh-agent bash
eval ssh-agent -s
ssh-add "C:\Users\Administrator\.ssh\id_rsa"

 

說明:
1.命令ssh-add "C:\Users\Administrator\.ssh\id_rsa"中,引號中的路徑就是你私匙文件的路徑,路徑需要使用英文雙引號包裹。

 

Identity added: C:\Users\Administrator\.ssh\id_rsa (C:\Users\Administrator\.ssh\id_rsa)

 

提示Identity added :說明已添加成功
添加成功后在C:\Users\Administrator\.ssh\目錄下會有三個文件


id_rsa
id_rsa.pub
known_hosts

 

需要注意的是在ssh add 之前執行一條 “ssh-add -D” 命令,這是用來清除已有的私鑰。

2.測試ssh key


ssh -T git@192.168.31.1

 

說明:
1.命令"ssh -T git@192.168.31.1"中,@后面替換成git服務器的ip地址。

提示 Welcome to GitLab, @xxx! 說明加入ssh成功。@后面的xxx為git用戶名。

就是免密push/pull代碼了。

遇到的問題

1.windows下git pull/push提示輸入密碼,git@192.168.31.1's password:Permission denied, please try again.
原因:SSH密鑰對不匹配。這個錯誤主要密匙全路徑名不相符,結果導致本地的SSH工具無法找到到正確的密匙。
解決:首先檢查生成的兩個文件id_rsa和id_rsa.pub是否確實在~/.ssh路徑下,如過不是,把它們移過去。
其次是非常重要的一點,如果你在步驟2中自定義了ssh key的文件名,那么原因就在於你的命名與ssh內設定的名字不一致,因此需要手動添加秘鑰。很多教程大概不是windows系統。。直接讓輸入命令

 

ssh-add ~/.ssh/你的文件名

 

其他常用操作

1.在git bash輸入remote -v查看當前的remote url


git remote -v


若得到的連接是以http/https開頭的,是http/https協議,git開頭的是git協議

2.git從http/https協議替換成git協議


git remote set-url origin git@192.168.31.1:8099/test.git

 

done!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM