git-- github的使用--賬戶和本地連接

以下指令在git 執行bash

流程:先看有沒有密鑰;

沒有的話,在電腦生成密鑰對,公鑰復制到github;

要想使用https,配置令牌,注意令牌有期限問題,連接不了有可能是期限問題

一個電腦對應多個賬戶,沒有完全搞好,現在可以使用ssh,要注意后面的賬號,要把ssh鏈接修改名字才能用。咱家先不搞了。

在 GitHub 上使用密鑰和令牌時,通常有兩種常見的認證方式:SSH 密鑰個人訪問令牌(Personal Access Token, PAT)。這兩種方式可以幫助你在操作 GitHub 倉庫時進行身份驗證。

1. 使用 SSH 密鑰進行認證,用于ssh地址鏈接

使用 SSH 密鑰時,你不需要每次推送或拉取時輸入 GitHub 密碼,而是使用密鑰對進行身份驗證。

步驟 1: 生成 SSH 密鑰
  1. 打開終端(或 Git Bash)。

  2. 生成 SSH 密鑰對(公鑰和私鑰同事生成):

    ssh-keygen -t rsa -b 4096 -C "your-email@example.com"
    

    這個命令會生成一個 4096 位的 RSA 密鑰對,并將它與你的 GitHub 賬戶相關聯。

  3. 在提示時,你可以按 Enter 鍵接受默認存儲路徑(通常是 ~/.ssh/id_rsa),或者輸入自定義路徑。

  4. 設置一個密碼短語(可以留空,也可以設置一個密碼)。

步驟 2: 添加 SSH 公鑰到 GitHub
  1. 在終端中查看生成的公鑰:

    cat ~/.ssh/id_rsa.pub
    

    復制輸出的公鑰。

  2. 登錄到 GitHub 網站。

  3. 在右上角點擊你的頭像,選擇 Settings

  4. 在左側菜單中選擇 SSH and GPG keys

  5. 點擊 New SSH key,在 Title 中輸入一個名稱,然后粘貼剛剛復制的公鑰到 Key 字段。

  6. 點擊 Add SSH key,完成 SSH 密鑰的添加。

步驟 3: 使用 SSH 克隆倉庫
  1. 在 GitHub 倉庫頁面,點擊 Code 按鈕,選擇 SSH 選項,復制 SSH 地址。

  2. 在終端中使用 git clone 命令:

    git clone git@github.com:username/repository.git
    

2. 使用個人訪問令牌(Personal Access Token,PAT),用于https地址鏈接

GitHub 不再支持用密碼進行 Git 操作,必須使用個人訪問令牌進行身份驗證。

步驟 1: 創建個人訪問令牌
  1. 登錄到 GitHub,點擊右上角頭像,選擇 Settings

  2. 在左側菜單中選擇 Developer settings,然后選擇 Personal access tokens

  3. 點擊 Generate new token

  4. Note 字段中輸入令牌的說明(例如:Git操作)。

  5. 選擇需要的權限,例如:

    • repo(完全訪問私有倉庫)。

    • workflow(訪問 GitHub Actions 工作流)。

    • admin:repo_hook(管理倉庫 Webhooks 等)。

  6. 點擊 Generate token

  7. 復制生成的令牌 (IMPORTANT: You won't be able to see this token again)

步驟 2: 使用令牌進行認證

當你在 GitHub 上進行操作時(例如推送或拉取),會要求輸入 GitHub 的用戶名和密碼:

  • 用戶名:輸入你的 GitHub 用戶名。

  • 密碼:輸入你剛剛生成的 Personal Access Token

3. 配置 Git 使用個人訪問令牌

在使用 HTTPS 克隆倉庫時,你可以將個人訪問令牌用作密碼,避免每次操作時輸入密碼。

  1. 克隆倉庫時使用 HTTPS 地址:

    git clone https://github.com/username/repository.git
    
  2. 輸入你的 GitHub 用戶名。

  3. 當提示輸入密碼時,粘貼你的個人訪問令牌作為密碼。

一般選擇tokens(classic),要勾選,repo權限。

Github 令牌(Personal access tokens )申請及使用-CSDN博客

總結

  • SSH 密鑰:適合經常進行 Git 操作的用戶,配置后不需要每次輸入密碼。

  • 個人訪問令牌(PAT):適合使用 HTTPS 克隆倉庫的用戶,令牌代替密碼進行身份驗證。

無論哪種方式,你都可以簡化 Git 操作并確保更高的安全性。如果有更多問題,歡迎隨時提問!

一個設備配置了兩個ssh,

要注意區分host,就是有一個不能直接使用ssh鏈接,修改成定義的名字有點麻煩,后續找找其他方式。

根據你的 `~/.ssh/config` 配置,你正在嘗試同時管理 **兩個 GitHub 賬戶**(一個默認賬戶和一個新賬戶 `jack`)。以下是關鍵解答和優化建議:

---

### **1. 當前配置的問題**
你的配置中:
```config
# 默認賬戶(11的賬戶)
Host github.com
? ? PreferredAuthentications publickey
? ? IdentityFile ~/.ssh/github_id_rsa

# 新賬戶(22的賬戶)
Host github-new
? ? HostName github.com
? ? User git
? ? IdentityFile ~/.ssh/id_rsa_newgithub
```
- **沖突點**:兩個配置都試圖關聯到 `github.com`,但第二個配置通過別名 `github-new` 規避了沖突。
- **結果**:
? - `git@github.com:...` → 使用 `~/.ssh/github_id_rsa`(22的賬戶)
? - `git@github-new:...` → 使用 `~/.ssh/id_rsa_newgithub`(jack的賬戶)

---

### **2. 能否同時使用 `github.com`?**
**可以,但需明確區分場景**:
1. **默認賬戶(22的賬戶)**:
? ?- 直接使用標準 URL:
? ? ?```bash
? ? ?git clone git@github.com:user/repo.git
? ? ?```
? ?- 會自動使用 `~/.ssh/github_id_rsa` 密鑰。

2. **新賬戶(22的賬戶)**:
? ?- 必須使用自定義別名 `github-new`:
? ? ?```bash
? ? ?git clone git@github-new:user/repo.git
? ? ?```
? ?- 會自動使用 `~/.ssh/id_rsa_newgithub` 密鑰。

---

### **3. 關鍵注意事項**
#### **(1) 確保密鑰已正確添加到 GitHub**
- 分別將兩個公鑰添加到對應的 GitHub 賬戶:
? - `~/.ssh/github_id_rsa.pub` → 11的賬戶的 **SSH Keys**
? - `~/.ssh/id_rsa_newgithub.pub` → 22的賬戶的 **SSH Keys**

#### **(2) 測試連接**
- 測試默認賬戶:
? ```bash
? ssh -T git@github.com
? ```
? 應返回:
? ```
? Hi 11! You've successfully authenticated...
? ```

- 測試新賬戶:
? ```bash
? ssh -T git@github-new
? ```
? 應返回:
? ```
? Hi 22! You've successfully authenticated...
? ```

#### **(3) 避免混淆**
- **不要**在同一個倉庫中混合使用兩個賬戶的密鑰(會導致權限錯誤)。
- 克隆或操作倉庫時,嚴格按需選擇:
? - 11的倉庫 → `git@github.com:...`
? - 22的倉庫 → `git@github-new:...`

---

### **4. 優化配置建議**
如果希望更清晰地管理多賬戶,可以統一使用自定義別名(避免直接使用 `github.com`):
```config
# 22的賬戶
Host github-22
? ? HostName github.com
? ? User git
? ? IdentityFile ~/.ssh/github_id_rsa

# jack的賬戶
Host github-jack
? ? HostName github.com
? ? User git
? ? IdentityFile ~/.ssh/id_rsa_newgithub
```
- 使用時:
? ```bash
? git clone git@github.com:11/repo.git ? ?# 11的賬戶
? git clone git@github-new:22/repo.git ?# 22的賬戶
? ```
- **優點**:完全隔離,避免誤操作。

---

### **5. 常見問題解決**
#### **Q: 為什么 `git@github.com` 仍使用錯誤的密鑰?**
- 檢查默認密鑰是否被緩存:
? ```bash
? ssh-add -l
? ```
- 清除緩存:
? ```bash
? ssh-add -D
? ```

#### **Q: 如何強制指定密鑰?**
臨時覆蓋密鑰:
```bash
GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_newgithub" git clone git@github.com:user/repo.git
```

---

### **總結**
- **可以同時使用**,但需通過不同 Host 別名區分賬戶。
- **最佳實踐**:為每個賬戶配置獨立的別名(如 `github-11` 和 `github-22`),避免直接修改 `github.com` 的默認行為。
- **驗證步驟**:務必測試 `ssh -T git@別名` 確認認證成功。

資料:

Git 、Git Bash、GitHub、Bash、Shell之間的關系與區別_git和gitbash區別-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899568.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899568.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899568.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OTN(Optical Transport Network)詳解

OTN(光傳送網)是一種基于**波分復用(WDM)**的大容量光傳輸技術,結合了SDH的運維管理優勢和WDM的高帶寬特性,廣泛應用于骨干網、城域核心層及數據中心互聯(DCI)。 1. OTN 的基本概念 …

Python 中列表(List)、元組(Tuple)、集合(Set)和字典(Dict)四大數據結構的完整對比

以下是 Python 中列表(List)、元組(Tuple)、集合(Set)和字典(Dict)四大數據結構的完整對比分析,結合了核心特性、操作方式和應用場景的深度總結: 一、核心特性…

Angular由一個bug說起之十五:自定義基于Overlay的Tooltip

背景 工具提示(tooltip)是一個常見的 UI 組件,用于在用戶與頁面元素交互時提供額外的信息。由于angular/material/tooltip的matTooltip只能顯示純文本,所以我們可以通過自定義Directive來實現一個靈活且功能豐富的tooltip Overlay…

軟件工程面試題(十五)

1、servlet 創建過程以及ruquest,response,session的生命周期? Servlet的創建過程: 第一步 public class AAA extends HttpServlet{ 實現對應的doxxx方法 } 第二步: 在web.xml中配置 <servlet> <servlet-name></servlet-name> <servlet-c…

搭建QNX Software Center的Docker環境

背景 本人使用 Ubuntu Server 22.04 服務器&#xff0c;所以沒有圖形界面&#xff0c;而 QNX Software Center 需要圖形界面。為了保證服務器環境的整理&#xff0c;計劃使用Docker部署QNX Software Center 一瓶安裝圖形界面。本方既是實現方案的記錄。 資源 Dockerfile&…

C#/.NET/.NET Core技術前沿周刊 | 第 31 期(2025年3.17-3.23)

前言 C#/.NET/.NET Core技術前沿周刊&#xff0c;你的每周技術指南針&#xff01;記錄、追蹤C#/.NET/.NET Core領域、生態的每周最新、最實用、最有價值的技術文章、社區動態、優質項目和學習資源等。讓你時刻站在技術前沿&#xff0c;助力技術成長與視野拓寬。 歡迎投稿、推薦…

粘包問題解決方案

粘包問題詳解&#xff1a;TCP協議中的常見問題及Go語言解決方案 一、什么是粘包問題&#xff1f; 粘包問題是指在TCP通信中&#xff0c;發送方發送的多個獨立消息在接收方被合并成一個消息接收的現象。換句話說&#xff0c;發送方發送的多條消息在接收方被“粘”在一起&#…

vue:突然發現onok無法使用

const that this;this.$confirm({title: "修改商品提示",content: "如果當前商品存在于商品活動庫&#xff0c;則在商品活動庫的狀態會下架",onOk: function () {that.submitForm();}}); 突然發現 this.$confirm無法進入onok 最終發現是主題沖突&#x…

redis hashtable 的sizemask理解

在 Redis 的哈希表實現中&#xff0c;index hash & dict->ht[0].sizemask 是計算鍵值對應存儲位置的核心操作。這個操作看起來簡單&#xff0c;但背后涉及哈希表的內存布局和性能優化策略。我們通過以下步驟逐步解析其原理&#xff1a; 一、哈希表的設計目標 快速定位…

Ruby 命令行選項

Ruby 命令行選項 概述 Ruby 是一種廣泛使用的編程語言,它擁有強大的命令行工具,可以幫助開發者進行各種任務。了解 Ruby 的命令行選項對于提高開發效率至關重要。本文將詳細介紹 Ruby 的常用命令行選項,幫助開發者更好地利用 Ruby 的命令行功能。 Ruby 命令行選項概述 R…

【STM32】WDG看門狗(學習筆記)

學習來源----->江協科技STM32 WDG簡介 WDG&#xff08;Watchdog&#xff09;看門狗看門狗可以監控程序的運行狀態&#xff0c;當程序因為設計漏洞、硬件故障、電磁干擾等原因&#xff0c;出現卡死或跑飛現象時&#xff0c;看門狗能及時復位程序&#xff0c;避免程序陷入長…

Java 數據庫連接池

HikariCP 老外開源的。 Spring Boot 2 之后默認選擇的連接池。 號稱性能最快的數據庫連接池。 為什么性能好呢&#xff1f; ● 字節碼級別的優化-盡量的利用 JIT 的內聯手段 ● 字節碼級別的優化-利用更容易被 JVM 優化的指令 ● 代碼級別的優化-利用改造后的 FastList 代替…

Spring Boot中@Valid 與 @Validated 注解的詳解

Spring Boot中Valid 與 Validated 注解的詳解 引言Valid注解功能介紹使用場景代碼樣例 Validated注解功能介紹使用場景代碼樣例 Valid與Validated的區別結論 引言 在Spring Boot應用中&#xff0c;參數校驗是確保數據完整性和一致性的重要手段。Valid和Validated注解是Spring …

C++搜索

功能擴展說明&#xff1a; 圖類封裝&#xff1a;將圖數據結構封裝為類&#xff0c;提高代碼復用性 最短路徑查找&#xff1a;基于BFS實現未加權圖的最短路徑查找 路徑重構&#xff1a;通過parent數組回溯構建完整路徑 異常處理&#xff1a;當路徑不存在時返回空向量 復雜度分析…

2023第十四屆藍橋杯大賽軟件賽國賽C/C++ 大學 B 組(真題題解)(C++/Java題解)

本來想刷省賽題呢&#xff0c;結果一不小心刷成國賽了 真是個小迷糊〒▽〒 但&#xff0c;又如何( ?? ω ?? )? 記錄刷題的過程、感悟、題解。 希望能幫到&#xff0c;那些與我一同前行的&#xff0c;來自遠方的朋友&#x1f609; 大綱&#xff1a; 一、子2023-&#xff…

CSS學習筆記6——網頁布局

目錄 一、元素的浮動屬性、清除浮動 清除浮動的其他方法 1、使用空標簽清除浮動影響 2、使用overflow屬性清除浮動 3、使用偽元素清除浮動影響 原理 overflow屬性 二、元素的定位 1、相對定位 2、絕對定位 ?編輯 3、固定定位 z-index層疊等級屬性 一、元素的浮動…

sqlalchemy:將mysql切換到OpenGauss

說明 之前python的項目使用的mysql&#xff0c;近期要切換到國產數據庫OpenGauss。 之前的方案是fastapisqlalchemy&#xff0c;測試下來發現不用改代碼&#xff0c;只要改下配置即可。 切換方案 安裝openGauss-connector-python-psycopg2 其代碼工程在&#xff1a;https:…

uniapp 獲取dom信息(封裝獲取元素信息工具函數)

在uniapp開發中&#xff0c;需要獲取到dom的信息&#xff0c;需要用到uniapp的指定方式 uni.createSelectorQuery()&#xff0c;但是每次需要用到的時候都需要很長一段的繁瑣代碼&#xff0c;本篇文章將呈現獲取dom信息方法封裝&#xff0c;話不多說&#xff0c;上菜&#xff1…

Linux之數據鏈路層

Linux之數據鏈路層 一.以太網1.1以太網幀格式1.2MAC地址1.3MTU 二.ARP協議2.1ARP協議工作流程2.2ARP協議格式 三.NAT技術四.代理服務4.1正向代理4.2反向代理 五.四大層的學習總結 一.以太網 在我們學習完了網絡層后我們接下來就要進入數據鏈路層的學習了&#xff0c;在學習完網…

MySQL的基礎語法2(函數-字符串函數、數值函數、日期函數和流程函數 )

目錄 一、字符串函數 1.常見字符串函數 ?編輯 2.字符串函數的基本使用 3.字符串函數的數據庫案例演示 二、數值函數 1.常見數值函數&#xff08;如下&#xff09;&#xff1a; 2.數值函數的基本使用 3.數值函數的數據庫案例演示 三、日期函數 1.常見的日期函數 2.日…