Git通過(guò)配置SSH密鑰對(duì)實(shí)現(xiàn)免登錄的完整指南
概述
在使用 Git 進(jìn)行版本控制時(shí),每次推送代碼都需要輸入用戶名和密碼會(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)容粘貼到輸入框中
- 填寫標(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ì)話級(jí)別的:每次斷開(kāi) SSH 連接,ssh-agent 進(jìn)程就會(huì)終止
2.密鑰未持久化:添加到 ssh-agent 的密鑰只在當(dāng)前會(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ì)話的時(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)文章
十分鐘內(nèi)學(xué)會(huì) 避免用戶刷新導(dǎo)致重復(fù)POST提交
在Web應(yīng)用中,采用POST提交信息是非常常見(jiàn)的,然而如果目標(biāo)頁(yè)面打開(kāi)得太慢,用戶就可能會(huì)刷新頁(yè)面,這時(shí)候之前已經(jīng)提交過(guò)的信息就會(huì)被重復(fù)提交。2009-08-08
git add -A 和 git add . 的區(qū)別詳解
這篇文章主要介紹了git add -A 和 git add . 的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
UTF-8 BOM 可能導(dǎo)致樣式錯(cuò)亂的解決方法
utf-8 是一種在web應(yīng)用中經(jīng)常使用的一種 unicode 字符的編碼方式,使用 utf-8 的好處在于它是一種變長(zhǎng)的編碼方式,對(duì)于 ANSII 碼編碼長(zhǎng)度為1個(gè)字節(jié),這樣的話在傳輸大量 ASCII 字符集的網(wǎng)頁(yè)時(shí),可以大量節(jié)約網(wǎng)絡(luò)帶寬。2009-06-06
i++循環(huán)與i-–循環(huán)的執(zhí)行效率(遞增與遞減效率)
i++循環(huán)與i-–循環(huán)的執(zhí)行效率(遞增與遞減效率),需要的朋友可以參考下。2011-01-01
kafka安裝過(guò)程與可視化工具kafka-eagle
這篇文章主要介紹了安裝kafka與可視化工具kafka-eagle,在本篇文中,我們?cè)敿?xì)地教你如何安裝kafka,還有它的可視化工具?kafka-eagle,中間也列舉了一些異常以及它的處理方式,真正做到了手把手教學(xué),需要的朋友可以參考下2023-11-11

