生成和配置 GitHub 仓库的 SSH 密钥

一、什么是 SSH 密钥?

SSH(Secure Shell)密钥是一种用于在计算机和 GitHub 之间建立安全连接的加密方法。配置 SSH 密钥后,可以通过 SSH 协议访问 GitHub 仓库,而无需输入用户名和密码。


二、生成并配置 SSH 密钥的流程

1. 检查现有的 SSH 密钥

  1. 打开 终端
  2. 检查默认位置是否已有 SSH 密钥:

    ls -al ~/.ssh
    
    • 常见的 SSH 密钥文件名:
      • id_rsaid_rsa.pub(默认密钥)。
      • id_ed25519id_ed25519.pub(推荐的现代密钥)。
  3. 如果已存在密钥,可直接跳到 步骤 4 绑定到 GitHub。


2. 生成新的 SSH 密钥

  1. 在终端中运行以下命令:

    ssh-keygen -t ed25519 -C "your_email@example.com"
    
    • 选项解释
      • -t ed25519:生成 Ed25519 类型密钥(推荐,速度更快且安全)。
      • -C "your_email@example.com":使用 GitHub 注册邮箱作为备注。
  2. 出现提示时:

    • 文件保存路径

      • Enter 使用默认路径(~/.ssh/id_ed25519)。
      • 或输入自定义路径。
    • 设置密码

      • 可选择设置密钥密码,也可直接按 Enter 留空。

3. 添加 SSH 密钥到 SSH Agent

  1. 启动 SSH Agent:
    eval "$(ssh-agent -s)"
    
  2. 添加新生成的 SSH 密钥到 Agent:
    ssh-add ~/.ssh/id_ed25519
    
    如果使用了自定义路径,请替换为实际路径。

4. 将 SSH 公钥绑定到 GitHub

  1. 显示公钥内容:

    cat ~/.ssh/id_ed25519.pub
    

    复制终端输出的完整公钥。

  2. 打开 GitHub 账户设置:

    • 登录 GitHub 官网
    • 点击右上角头像,选择 Settings
  3. 导航到 SSH 密钥设置:

    • 在左侧菜单选择 SSH and GPG keys
    • 点击 New SSH key
  4. 添加公钥:

    • Title:填写密钥名称(如 MacBook SSH Key)。
    • Key:粘贴复制的公钥内容。
    • 点击 Add SSH key

5. 测试连接

  1. 在终端中运行以下命令测试连接:

    ssh -T git@github.com
    

    可能会出现提示确认连接,输入 yes 并按回车。

  2. 如果配置正确,输出类似以下内容:

    Hi username! You've successfully authenticated, but GitHub does not provide shell access.
    

6. 配置多个 GitHub 账户(可选)

如果需要在同一设备上使用多个 GitHub 账户:

  1. 创建额外的 SSH 密钥:

    ssh-keygen -t ed25519 -C "your_other_email@example.com" -f ~/.ssh/id_ed25519_other
    
  2. 配置 SSH 配置文件:

    • 编辑或创建 ~/.ssh/config 文件:
      nano ~/.ssh/config
      
    • 添加以下内容:

      Host github.com
          HostName github.com
          User git
          IdentityFile ~/.ssh/id_ed25519
      
      Host github-other
          HostName github.com
          User git
          IdentityFile ~/.ssh/id_ed25519_other
      
    • 保存并退出。
  3. 使用特定账户克隆仓库:

    git clone git@github-other:username/repository.git
    

三、常见问题与解决方法

1. SSH 连接失败

现象
  • 测试连接时提示 Permission denied (publickey)
    解决方法
  1. 确保正确绑定公钥到 GitHub。
  2. 检查是否正确添加私钥到 SSH Agent:
    ssh-add -l
    
  3. 确保 Git 使用 SSH URL:
    git remote set-url origin git@github.com:username/repository.git
    

2. 提示密钥密码

现象
  • 每次使用密钥时需输入密码。
    解决方法
  1. 启用 macOS Keychain 集成:
    ssh-add --apple-use-keychain ~/.ssh/id_ed25519
    

四、参考资料

  1. GitHub 官方文档 - 生成 SSH 密钥
  2. GitHub 官方文档 - 测试 SSH 连接
### 如何在 GitHub生成 SSH 密钥 为了通过 SSH 协议安全地与 GitHub 进行通信,需要按照以下方法生成配置 SSH 密钥。 #### 1. 创建 SSH 密钥 可以通过 `ssh-keygen` 命令来创建一个新的 SSH 密钥。以下是具体操作: ```bash ssh-keygen -t ed25519 -C "[email protected]" ``` 此命令将会提示指定保存位置以及设置密码保护密钥[^2]。如果未特别指定路径,默认会在用户的 `.ssh/` 文件夹下生成两个文件:私钥 (`id_ed25519`) 公钥 (`id_ed25519.pub`)。 对于旧版本不支持 ED25519 的情况,则可采用 RSA 方式生成密钥: ```bash ssh-keygen -t rsa -b 4096 -C "[email protected]" ``` 这同样会产生一对密钥文件,分别为 `id_rsa` `id_rsa.pub`[^4]。 #### 2. 启动 SSH Agent 并加载密钥 启动 SSH agent 来管理你的身份验证令牌,并将刚刚生成的私钥添加进去: ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 ``` 如果是基于 RSA 的密钥,则应改为: ```bash ssh-add ~/.ssh/id_rsa ``` 上述过程确保本地计算机能够识别该密钥用于后续认证需求。 #### 3. 添加公钥至 GitHub 账户 获取已生成的公钥内容以便上传到 GitHub: ```bash cat ~/.ssh/id_ed25519.pub | pbcopy ``` 或者针对传统 RSA 类型: ```bash cat ~/.ssh/id_rsa.pub | pbcopy ``` 接着访问 GitHub 官网登录自己的账号,在顶部导航栏找到个人头像图标点击进入 **Settings** 页面;随后左侧菜单选择 **SSH and GPG keys** 部分下的选项卡;最后按指引填写表单项——提供一个易于辨识的名字作为标题(Title),并将之前复制好的公钥粘贴进对应框内提交即可完成绑定动作[^3]。 至此,整个流程结束,用户便能借助所建立起来的安全通道实现同远程仓库之间的无缝协作交流了[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值