Git通過(guò)配置SSH密鑰對(duì)實(shí)現(xiàn)免登錄的完整指南
概述
在使用 Git 進(jìn)行版本控制時(shí),每次推送代碼都需要輸入用戶(hù)名和密碼會(huì)嚴(yán)重影響工作效率。通過(guò)配置 SSH 密鑰對(duì),可以實(shí)現(xiàn)免密碼認(rèn)證,讓 Git 操作更加便捷安全。
配置步驟
1. 生成 SSH 密鑰對(duì)
使用以下命令生成 RSA 密鑰對(duì),其中 Hettyka 是標(biāo)識(shí)符,可根據(jù)需要自定義:
ssh-keygen -t rsa -b 4096 -C "Hettyka"

執(zhí)行過(guò)程說(shuō)明:
- 系統(tǒng)會(huì)提示選擇密鑰保存路徑,默認(rèn)按 Enter 使用推薦路徑
- 設(shè)置密鑰密碼(可選,直接按 Enter 跳過(guò))
- 生成完成后會(huì)顯示密鑰指紋和隨機(jī)字符圖像
生成的文件:
id_rsa:私鑰文件(必須保密) id_rsa.pub:公鑰文件(可公開(kāi))

2. 配置公鑰到代碼托管平臺(tái)
以 Gitee 為例:
- 復(fù)制公鑰內(nèi)容:
cat ~/.ssh/id_rsa.pub
- 登錄 Gitee,進(jìn)入「設(shè)置」→「SSH 公鑰」
- 添加新的 SSH 公鑰,將復(fù)制的公鑰內(nèi)容粘貼到輸入框中
- 填寫(xiě)標(biāo)題(可選),點(diǎn)擊確認(rèn)

3. 配置 SSH 代理
3.1 啟動(dòng) SSH 代理
eval "$(ssh-agent -s)"
3.2 添加私鑰到 SSH 代理
ssh-add ~/.ssh/id_rsa
權(quán)限問(wèn)題處理:
如果遇到 Permission denied 錯(cuò)誤,可能需要使用管理員權(quán)限:

這時(shí)需要提高私鑰權(quán)限:

4. 測(cè)試連接
驗(yàn)證 SSH 連接是否配置成功:
ssh -T git@gitee.com

成功時(shí)會(huì)顯示歡迎信息,確認(rèn)密鑰已正確配置。
5. 配置 Git 遠(yuǎn)程倉(cāng)庫(kù)
查看當(dāng)前遠(yuǎn)程倉(cāng)庫(kù)地址
git remote -v
更換為 SSH 地址
如果當(dāng)前使用 HTTPS 地址,需要更換為 SSH 協(xié)議:
git remote set-url origin 你的ssh倉(cāng)庫(kù)地址
注意事項(xiàng)
- 私鑰安全:私鑰文件相當(dāng)于密碼,切勿泄露給他人
- 多平臺(tái)配置:如需在多個(gè)代碼平臺(tái)使用,通常只需在不同平臺(tái)重復(fù)步驟 2
- 多密鑰管理:如需為不同平臺(tái)配置不同密鑰,可在 SSH 配置文件中設(shè)置
驗(yàn)證配置
完成所有步驟后,執(zhí)行 Git 推送操作:
git push origin main
如果配置正確,將不再需要輸入密碼即可完成操作。
故障排除
- 連接失敗:檢查公鑰是否正確添加到代碼平臺(tái)
- 權(quán)限錯(cuò)誤:確保私鑰文件權(quán)限為 700
- 代理問(wèn)題:確認(rèn) SSH 代理正常運(yùn)行且已加載私鑰
通過(guò)以上配置,即可實(shí)現(xiàn) Git 操作的免登錄認(rèn)證,提升開(kāi)發(fā)效率。
遇到的問(wèn)題:
重新打開(kāi)ssh標(biāo)簽頁(yè)去拉代碼的時(shí)候,就會(huì)遇到這種情況:

原因是:SSH 認(rèn)證代理 (ssh-agent) 在每次重新連接服務(wù)器時(shí)都會(huì)重置
1.ssh-agent 是會(huì)話(huà)級(jí)別的:每次斷開(kāi) SSH 連接,ssh-agent 進(jìn)程就會(huì)終止
2.密鑰未持久化:添加到 ssh-agent 的密鑰只在當(dāng)前會(huì)話(huà)有效
3.缺乏自動(dòng)啟動(dòng)機(jī)制:服務(wù)器沒(méi)有配置自動(dòng)啟動(dòng)和加載 SSH 密鑰
永久解決方案
方案一:配置 SSH 自動(dòng)加載密鑰(推薦)
編輯 SSH 配置文件:
# 編輯 SSH 配置文件
vim ~/.ssh/config
# 添加以下內(nèi)容
Host gitee.com
HostName gitee.com
User git
IdentityFile /root/git/id_rsa
IdentitiesOnly yes
# 設(shè)置正確權(quán)限
chmod 600 ~/.ssh/config這樣每次打開(kāi)新的會(huì)話(huà)的時(shí)候,密鑰還是會(huì)存在,可以直接拉取git倉(cāng)庫(kù)上的代碼
到此這篇關(guān)于 Git通過(guò)配置SSH密鑰對(duì)實(shí)現(xiàn)免登錄的完整指南的文章就介紹到這了,更多相關(guān) Git配置SSH密鑰對(duì)免登錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VSCode設(shè)置默認(rèn)瀏覽器打開(kāi)的兩種方式
在使用vscode編輯器的時(shí)候,如果我們不設(shè)置默認(rèn)瀏覽器,那么直接打開(kāi)的是IE瀏覽器,在進(jìn)行頁(yè)面調(diào)試的時(shí)候無(wú)疑是有點(diǎn)麻煩的,這篇文章主要給大家介紹了關(guān)于VSCode設(shè)置默認(rèn)瀏覽器打開(kāi)的兩種方式,需要的朋友可以參考下2023-09-09
深度學(xué)習(xí)開(kāi)源框架基礎(chǔ)算法之傅立葉變換的概要介紹
今天小編就為大家分享一篇關(guān)于深度學(xué)習(xí)開(kāi)源框架基礎(chǔ)算法之傅立葉變換的概要介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
web服務(wù)器程序運(yùn)行出現(xiàn)亂碼問(wèn)題的解決方法
有時(shí)候程序運(yùn)行是,出現(xiàn)亂碼,不是因?yàn)閿?shù)據(jù)庫(kù)的問(wèn)題,是因?yàn)闆](méi)有定義編碼的問(wèn)題,大家可以看下養(yǎng)成良好的編碼習(xí)慣。2009-12-12
VS2019中Git源代碼管理實(shí)現(xiàn)總結(jié)
這篇文章主要介紹了VS2019中Git源代碼管理實(shí)現(xiàn)總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
網(wǎng)絡(luò)抓包工具wireshark入門(mén)教程詳解
Wireshark是一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包分析軟件,功能非常強(qiáng)大,奈何他是英文版的,今天就為大家詳細(xì)介紹一下網(wǎng)絡(luò)抓包工具wireshark的使用教程2018-10-10
Azkaban報(bào)錯(cuò)-azkaban.executor.ExecutorManagerException: No acti
這篇文章主要介紹了Azkaban報(bào)錯(cuò)-azkaban.executor.ExecutorManagerException: No active executors found,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-05-05
Jar包一鍵重啟的Shell腳本及新服務(wù)器部署的一些經(jīng)驗(yàn)分享
這篇文章主要介紹了Jar包一鍵重啟的Shell腳本及新服務(wù)器部署的一些經(jīng)驗(yàn),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
關(guān)于IDEA git 只有Commit沒(méi)有Push的問(wèn)題
這篇文章主要介紹了關(guān)于IDEA git 只有Commit沒(méi)有Push的問(wèn)題,本文給大家介紹的非常想詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01

