以下指令在git 執行bash
流程:先看有沒有密鑰;
沒有的話,在電腦生成密鑰對,公鑰復制到github;
要想使用https,配置令牌,注意令牌有期限問題,連接不了有可能是期限問題
一個電腦對應多個賬戶,沒有完全搞好,現在可以使用ssh,要注意后面的賬號,要把ssh鏈接修改名字才能用。咱家先不搞了。
在 GitHub 上使用密鑰和令牌時,通常有兩種常見的認證方式:SSH 密鑰和個人訪問令牌(Personal Access Token, PAT)。這兩種方式可以幫助你在操作 GitHub 倉庫時進行身份驗證。
1. 使用 SSH 密鑰進行認證,用于ssh地址鏈接
使用 SSH 密鑰時,你不需要每次推送或拉取時輸入 GitHub 密碼,而是使用密鑰對進行身份驗證。
步驟 1: 生成 SSH 密鑰
-
打開終端(或 Git Bash)。
-
生成 SSH 密鑰對(公鑰和私鑰同事生成):
ssh-keygen -t rsa -b 4096 -C "your-email@example.com"
這個命令會生成一個 4096 位的 RSA 密鑰對,并將它與你的 GitHub 賬戶相關聯。
-
在提示時,你可以按 Enter 鍵接受默認存儲路徑(通常是
~/.ssh/id_rsa
),或者輸入自定義路徑。 -
設置一個密碼短語(可以留空,也可以設置一個密碼)。
步驟 2: 添加 SSH 公鑰到 GitHub
-
在終端中查看生成的公鑰:
cat ~/.ssh/id_rsa.pub
復制輸出的公鑰。
-
登錄到 GitHub 網站。
-
在右上角點擊你的頭像,選擇 Settings。
-
在左側菜單中選擇 SSH and GPG keys。
-
點擊 New SSH key,在 Title 中輸入一個名稱,然后粘貼剛剛復制的公鑰到 Key 字段。
-
點擊 Add SSH key,完成 SSH 密鑰的添加。
步驟 3: 使用 SSH 克隆倉庫
-
在 GitHub 倉庫頁面,點擊 Code 按鈕,選擇 SSH 選項,復制 SSH 地址。
-
在終端中使用
git clone
命令:git clone git@github.com:username/repository.git
2. 使用個人訪問令牌(Personal Access Token,PAT),用于https地址鏈接
GitHub 不再支持用密碼進行 Git 操作,必須使用個人訪問令牌進行身份驗證。
步驟 1: 創建個人訪問令牌
-
登錄到 GitHub,點擊右上角頭像,選擇 Settings。
-
在左側菜單中選擇 Developer settings,然后選擇 Personal access tokens。
-
點擊 Generate new token。
-
在 Note 字段中輸入令牌的說明(例如:
Git操作
)。 -
選擇需要的權限,例如:
-
repo
(完全訪問私有倉庫)。 -
workflow
(訪問 GitHub Actions 工作流)。 -
admin:repo_hook
(管理倉庫 Webhooks 等)。
-
-
點擊 Generate token。
-
復制生成的令牌 (IMPORTANT: You won't be able to see this token again)。
步驟 2: 使用令牌進行認證
當你在 GitHub 上進行操作時(例如推送或拉取),會要求輸入 GitHub 的用戶名和密碼:
-
用戶名:輸入你的 GitHub 用戶名。
-
密碼:輸入你剛剛生成的 Personal Access Token。
3. 配置 Git 使用個人訪問令牌
在使用 HTTPS 克隆倉庫時,你可以將個人訪問令牌用作密碼,避免每次操作時輸入密碼。
-
克隆倉庫時使用 HTTPS 地址:
git clone https://github.com/username/repository.git
-
輸入你的 GitHub 用戶名。
-
當提示輸入密碼時,粘貼你的個人訪問令牌作為密碼。
一般選擇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博客