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博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值