最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Git遠(yuǎn)程連接之SSH與HTTPS克隆協(xié)議詳解

 更新時(shí)間:2026年04月02日 08:49:47   作者:李少兄  
在日常開發(fā)中,git?clone?是我們最常執(zhí)行的命令之一,本文詳細(xì)對比了Git克隆的兩種主要協(xié)議,即HTTPS和SSH,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下

前言

在日常開發(fā)中,git clone 是我們最常執(zhí)行的命令之一。但你是否曾思考過,在 https://...git@... 這兩種不同的URL背后,究竟隱藏著怎樣的技術(shù)原理和安全考量?選擇正確的連接方式,不僅能提升你的工作效率,更能為你的代碼資產(chǎn)筑起一道堅(jiān)固的安全防線。

一、HTTPS協(xié)議

HTTPS(Hypertext Transfer Protocol Secure)是HTTP的安全版本,通過SSL/TLS加密層來保護(hù)數(shù)據(jù)傳輸。

1. 工作原理

當(dāng)你使用HTTPS URL(如 https://github.com/username/repo.git)克隆倉庫時(shí),Git會通過標(biāo)準(zhǔn)的443端口與服務(wù)器通信。身份驗(yàn)證不再依賴賬戶密碼,而是使用個(gè)人訪問令牌(Personal Access Token, PAT)

2. 配置步驟

步驟1:生成個(gè)人訪問令牌(PAT)

  1. 登錄你的Git托管平臺(如GitHub或GitLab)。
  2. 進(jìn)入 Settings > Developer settings > Personal access tokens (GitHub) 或 Preferences > Access Tokens (GitLab)。
  3. 點(diǎn)擊 Generate new token,填寫一個(gè)描述性的名稱(如 My Laptop Git)。
  4. 關(guān)鍵:勾選所需的權(quán)限范圍。對于基本的代碼推送和拉取,通常需要 repo (GitHub) 或 read_repository / write_repository (GitLab) 權(quán)限。
  5. 點(diǎn)擊 Generate token,并立即復(fù)制生成的令牌。這個(gè)令牌只會顯示一次!

步驟2:克隆倉庫

git clone https://github.com/your-username/your-repo.git

系統(tǒng)會提示你輸入用戶名和密碼:

  • Username: 你的Git托管平臺用戶名。
  • Password: 粘貼你剛剛生成的PAT(輸入時(shí)不可見)。

步驟3:配置憑證緩存(可選但推薦)

為了避免每次操作都輸入PAT,可以配置Git緩存憑證。

# 緩存憑證1小時(shí)(3600秒)
git config --global credential.helper 'cache --timeout=3600'

# 在Windows上,使用內(nèi)置的管理器(推薦)
git config --global credential.helper manager-core

# 在macOS上,使用鑰匙串
git config --global credential.helper osxkeychain

3. 優(yōu)點(diǎn)與缺點(diǎn)

優(yōu)點(diǎn):

  • 簡單直觀:無需復(fù)雜的密鑰管理,對新手友好。
  • 網(wǎng)絡(luò)兼容性好:使用標(biāo)準(zhǔn)的443端口,幾乎不會被企業(yè)防火墻攔截。
  • 匿名克隆:任何人都可以克隆公開倉庫,無需任何認(rèn)證。

缺點(diǎn):

  • 安全性依賴Token管理:如果PAT泄露,風(fēng)險(xiǎn)較高。
  • 操作略顯繁瑣:即使有緩存,Token過期或更換設(shè)備后仍需重新配置。

二、SSH協(xié)議:高效安全的專業(yè)之選

SSH(Secure Shell)是一種強(qiáng)大的網(wǎng)絡(luò)協(xié)議,用于安全地訪問遠(yuǎn)程服務(wù)器。在Git中,它通過非對稱加密技術(shù)實(shí)現(xiàn)免密認(rèn)證。

1. 工作原理

SSH的核心是公鑰-私鑰對。你將公鑰上傳到Git服務(wù)器,而私鑰安全地保存在本地。當(dāng)進(jìn)行Git操作時(shí),服務(wù)器會向你的本地客戶端發(fā)起挑戰(zhàn),只有持有正確私鑰的客戶端才能成功響應(yīng),從而完成身份驗(yàn)證。

2. 配置步驟

步驟1:檢查現(xiàn)有SSH密鑰

首先,看看你是否已經(jīng)存在SSH密鑰。

ls -al ~/.ssh

如果看到 id_rsaid_rsa.pubid_ed25519id_ed25519.pub 文件,說明已有密鑰。你可以復(fù)用它們,也可以生成新的。

步驟2:生成新的SSH密鑰對

這是最關(guān)鍵的一步,務(wù)必理解每個(gè)參數(shù)的含義。

ssh-keygen -t ed25519 -C "your_email@example.com"

-t: 指定加密算法。

  • ed25519強(qiáng)烈推薦。這是一種現(xiàn)代的橢圓曲線算法,速度快、安全性高、密鑰短。
  • rsa:傳統(tǒng)算法,兼容性最好。如果必須使用,請指定 -b 4096 以獲得足夠強(qiáng)度(ssh-keygen -t rsa -b 4096 -C "your_email@example.com")。

-C: 添加注釋。通常是你的郵箱,用于在Git平臺上標(biāo)識此密鑰的用途(如“Work Laptop”)。

執(zhí)行命令后,系統(tǒng)會提示你:

  1. Enter file in which to save the key: 直接回車使用默認(rèn)路徑 ~/.ssh/id_ed25519。
  2. Enter passphrase: 建議設(shè)置一個(gè)密碼短語。這為你的私鑰增加了第二層保護(hù),即使文件被盜也無法直接使用。

步驟3:啟動SSH代理并添加私鑰

SSH代理(ssh-agent)可以幫助你管理私鑰和其密碼短語。

# 啟動ssh-agent
eval "$(ssh-agent -s)"

# 將你的私鑰添加到ssh-agent
ssh-add ~/.ssh/id_ed25519
# 如果設(shè)置了密碼短語,此時(shí)會要求你輸入一次

步驟4:將公鑰添加到Git賬戶

復(fù)制公鑰內(nèi)容:

cat ~/.ssh/id_ed25519.pub
# 或使用剪貼板命令(macOS: pbcopy, Windows: clip)

登錄Git平臺,進(jìn)入 Settings > SSH and GPG keys。

點(diǎn)擊 New SSH key,粘貼公鑰內(nèi)容,并給它一個(gè)有意義的標(biāo)題(如“MacBook Pro 2026”),然后點(diǎn)擊 Add SSH key。

步驟5:測試SSH連接

ssh -T git@github.com
# 對于GitLab: ssh -T git@gitlab.com

如果看到類似 Hi username! You've successfully authenticated... 的消息,恭喜你,配置成功!

步驟6:使用SSH克隆倉庫

在倉庫頁面,復(fù)制 SSH 地址(格式為 git@github.com:username/repo.git),然后執(zhí)行:

git clone git@github.com:your-username/your-repo.git

此后,所有 git pushgit pull 操作都將無需任何憑證輸入。

3. 優(yōu)點(diǎn)與缺點(diǎn)

優(yōu)點(diǎn):

  • 極致便捷:一次配置,永久免密。
  • 頂級安全:基于非對稱加密,私鑰永不離開你的機(jī)器。
  • 自動化友好:非常適合CI/CD流水線和自動化腳本。

缺點(diǎn):

  • 初始配置稍復(fù)雜:對初學(xué)者有一定門檻。
  • 網(wǎng)絡(luò)限制:默認(rèn)使用22端口,可能被某些嚴(yán)格的企業(yè)防火墻阻止。

三、高級場景:多賬號管理

如果你同時(shí)擁有個(gè)人GitHub賬號和公司GitLab賬號,可以通過配置 ~/.ssh/config 文件來完美解決。

為不同賬號生成不同的密鑰對:

ssh-keygen -t ed25519 -C "personal@email.com" -f ~/.ssh/id_ed25519_personal
ssh-keygen -t ed25519 -C "work@email.com" -f ~/.ssh/id_ed25519_work

編輯 ~/.ssh/config 文件(若不存在則創(chuàng)建):

# 個(gè)人GitHub賬戶
Host github-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_personal
# 公司GitLab賬戶
Host gitlab-work
  HostName gitlab.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work

克隆倉庫時(shí),使用自定義的Host別名:

# 克隆個(gè)人項(xiàng)目
git clone git@github-personal:your-username/your-repo.git

# 克隆公司項(xiàng)目
git clone git@gitlab-work:company/project.git

四、常見問題與注意事項(xiàng)

注意事項(xiàng)1:私鑰安全

~/.ssh 目錄及其下的私鑰文件權(quán)限必須嚴(yán)格。確保目錄權(quán)限為 700 (drwx------),私鑰文件權(quán)限為 600 (-rw-------)。可通過 chmod 700 ~/.sshchmod 600 ~/.ssh/id_ed25519 設(shè)置。

注意事項(xiàng)2:首次SSH連接

第一次通過SSH連接新主機(jī)時(shí),終端會提示你確認(rèn)主機(jī)的指紋(fingerprint)。請務(wù)必核對官方文檔提供的指紋信息,以防止中間人攻擊。

如何切換已有倉庫的協(xié)議?

如果你已用HTTPS克隆了倉庫,想切換到SSH,只需更改遠(yuǎn)程URL:

# 查看當(dāng)前遠(yuǎn)程URL
git remote -v

# 更改為SSH URL
git remote set-url origin git@github.com:username/repo.git

五、總結(jié)與決策指南

特性HTTPSSSH
上手難度??☆ (簡單)??? (中等)
日常便捷性??☆ (需Token)??? (完全免密)
安全性??☆ (依賴Token)??? (非對稱加密)
網(wǎng)絡(luò)穿透性??? (443端口)??☆ (22端口可能被封)
適用人群初學(xué)者、臨時(shí)用戶、受限網(wǎng)絡(luò)環(huán)境專業(yè)開發(fā)者、長期使用者、自動化場景

最終建議

  • 如果你是專業(yè)開發(fā)者,并且追求高效、安全的工作流,請毫不猶豫地選擇SSH。花半小時(shí)學(xué)習(xí)配置,將為你節(jié)省無數(shù)個(gè)未來的時(shí)間。
  • 如果你只是偶爾克隆一個(gè)開源項(xiàng)目,或者身處一個(gè)嚴(yán)格限制22端口的網(wǎng)絡(luò)環(huán)境中,HTTPS是更省心的選擇。

到此這篇關(guān)于Git遠(yuǎn)程連接之SSH與HTTPS克隆協(xié)議詳解的文章就介紹到這了,更多相關(guān)Git SSH與HTTPS克隆協(xié)議內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何使用VSCode插件Remote-Tunnels連接服務(wù)器

    如何使用VSCode插件Remote-Tunnels連接服務(wù)器

    本文介紹使用Remote?-?Tunnels連接服務(wù)器,該方法需要遠(yuǎn)程服務(wù)器有流暢的網(wǎng)絡(luò)環(huán)境,它使用微軟的服務(wù)來建立隧道,需要登錄GitHub,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • git 報(bào)錯(cuò):OpenSSL SSL_read: Connection was reset, errno 10054 解決方法

    git 報(bào)錯(cuò):OpenSSL SSL_read: Connection was&

    這篇文章主要介紹了git 報(bào)錯(cuò):OpenSSL SSL_read: Connection was reset, errno 10054 解決方法,涉及git配置信息及緩存相關(guān)操作技巧,需要的朋友可以參考下
    2023-04-04
  • 使用Postman生成的okhttp代碼依賴

    使用Postman生成的okhttp代碼依賴

    這篇文章主要介紹了使用Postman生成的okhttp代碼依賴,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • git stash的正確用法詳解

    git stash的正確用法詳解

    這篇文章主要為大家介紹了git stash的正確用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 算法系列15天速成 第七天 線性表【上】

    算法系列15天速成 第七天 線性表【上】

    人活在社會上不可能孤立,比如跟美女有著千絲萬縷的關(guān)系,有的是一對一,有的是一對多,有的是多對多
    2013-11-11
  • Git Tag打、切換、推送和刪除的操作指南

    Git Tag打、切換、推送和刪除的操作指南

    本篇文章詳細(xì)介紹了Git標(biāo)簽(tag)的的使用方法,包括標(biāo)簽的定義、與分支(branch)的區(qū)別、常見操作如創(chuàng)建、查看、推送等刪除標(biāo)簽,以及如何基于標(biāo)簽部署代碼和切換版本,文章還提供了完整的發(fā)版流程示例和常用命令速查表,幫助開發(fā)者更高效地地地代碼版本
    2026-05-05
  • git分支或指定文件回退到指定版本命令詳解

    git分支或指定文件回退到指定版本命令詳解

    作為一名后端開發(fā),相信大家一定遇到過這樣的情景,代碼開發(fā)人員過多,并且開發(fā)分支過多,導(dǎo)致代碼版本管理困難,這樣就難免遇到一些代碼合并出錯(cuò),下面這篇文章主要給大家介紹了關(guān)于git分支或指定文件回退到指定版本命令的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • SpringSecurity框架簡介及與shiro特點(diǎn)對比

    SpringSecurity框架簡介及與shiro特點(diǎn)對比

    這篇文章是SpringSecurity框架的入門篇,主要為大家介紹了SpringSecurity框架簡介及與shiro優(yōu)缺點(diǎn)對比有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-03-03
  • 前端常用的Chrome調(diào)試技巧最全匯總

    前端常用的Chrome調(diào)試技巧最全匯總

    作為一個(gè)前端開發(fā)者,我們每時(shí)每刻都跟瀏覽器打交道,在開發(fā)的過程中,我們需要不斷的在瀏覽器中查看編寫的成果,合理使用瀏覽器的控制臺功能,這篇文章主要給大家介紹了關(guān)于前端常用Chrome調(diào)試技巧的相關(guān)資料,需要的朋友可以參考下
    2024-09-09
  • Python雖然很火找工作為什么這么難

    Python雖然很火找工作為什么這么難

    這兩年因?yàn)榈谌ㄈ斯ぶ悄軣岢弊?Python火了一把,讓中小學(xué)生、非程序員(產(chǎn)品經(jīng)理、運(yùn)營)都加入到了學(xué)習(xí)Python的行列,那之前Python火嗎
    2019-06-06

最新評論

富源县| 和田县| 宁德市| 北辰区| 泽库县| 苏尼特左旗| 乌海市| 紫云| 瑞丽市| 和田县| 会东县| 云阳县| 曲阳县| 新竹市| 襄樊市| 富宁县| 泽州县| 苍梧县| 理塘县| 邮箱| 育儿| 两当县| 大姚县| 治多县| 宿迁市| 泗阳县| 阳春市| 金湖县| 岢岚县| 呈贡县| 比如县| 宜兰县| 潞西市| 淮滨县| 大邑县| 长阳| 泽普县| 渭源县| 左权县| 沁源县| 阿拉尔市|