博客 / Others/ Git 配置 SSH Key 连接 GitHub 与设置 SOCKS5 代理完整指南

Git 配置 SSH Key 连接 GitHub 与设置 SOCKS5 代理完整指南

Git 配置 SSH Key 连接 GitHub 与设置 SOCKS5 代理完整指南

一、生成 SSH Key 并添加到 GitHub

SSH Key 是安全连接 GitHub 的身份凭证,由一对密钥(公钥和私钥)组成。公钥上传到 GitHub,私钥保存在本地。

方法一:使用 Git Bash 生成新密钥

这是最推荐的方法,适用于首次配置。

  1. 打开 Git Bash。
  2. 运行以下命令,将 your_email@example.com 替换为你的 GitHub 注册邮箱:
    ssh-keygen -t ed25519 -C "your_email@example.com"

    说明ed25519 是比旧版 rsa 更安全、更快的算法。如果你使用的系统不支持 ed25519,可回退使用 ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

  3. 当提示“Enter file in which to save the key”时,直接按回车键,使用默认路径(通常是 ~/.ssh/id_ed25519)。
  4. 系统会提示你输入一个密码(passphrase)来保护你的私钥。你可以设置一个强密码,或直接按回车留空(不推荐,因为安全性较低)。
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:

生成成功后,你会在 ~/.ssh/ 目录下得到两个文件:id_ed25519(私钥,必须保密)和 id_ed25519.pub(公钥)。

方法二:使用已有的 SSH 密钥

如果你已有通过其他工具(如 PuTTYgen)生成的密钥对,可以复用。

  1. 找到你的私钥文件(如 id_rsa)和对应的公钥文件(如 id_rsa.pub)。
  2. 确保它们已放在 Git 的默认 SSH 目录 ~/.ssh/ 下。如果没有,请复制过去。
  3. 使用文本编辑器(如 VS Code、Notepad++)打开公钥文件(.pub 文件),复制其全部内容。

将公钥添加到 GitHub 账户

  1. 登录 GitHub,点击右上角头像,进入 Settings
  2. 在左侧边栏选择 SSH and GPG keys
  3. 点击 New SSH key
  4. 在“Title”字段,为这个密钥起一个易于识别的名字(如“My Laptop”)。
  5. 在“Key”字段,粘贴你刚才复制的公钥内容。
  6. 点击 Add SSH key 完成添加。

二、在本地 Git 中配置并使用 SSH 密钥

1. 启动 SSH 代理并添加私钥

在 Git Bash 中执行以下命令,将私钥添加到 SSH 代理中管理:

# 启动 SSH 代理(如果尚未运行)
eval "$(ssh-agent -s)"
# 将默认的私钥(如 id_ed25519)添加到代理
ssh-add ~/.ssh/id_ed25519

如果系统提示输入密码(passphrase),请输入你创建密钥时设置的密码。

2. 测试 SSH 连接

运行以下命令测试是否成功连接到 GitHub:

ssh -T git@github.com

如果看到类似以下的提示,表示连接成功:

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

三、为 Git 配置 SOCKS5 代理(加速访问)

在国内网络环境下,访问 GitHub 可能较慢或受限。如果你有可用的 SOCKS5 代理(例如 Shadowsocks、V2Ray 等客户端提供的本地代理),可以为 Git 设置代理以加速。

设置全局 SOCKS5 代理

假设你的代理客户端在本地(127.0.0.1)的 10808 端口提供了 SOCKS5 服务。

# 为 HTTP/HTTPS 协议设置代理
git config --global http.proxy 'socks5://127.0.0.1:10808'
# 为 SSH 协议设置代理(如果需要通过 SSH 克隆)
git config --global core.gitproxy 'socks5://127.0.0.1:10808'

取消代理设置

当不需要使用代理时,可以取消全局设置:

git config --global --unset http.proxy
git config --global --unset core.gitproxy

仅对特定域名使用代理

如果你只想对 GitHub 使用代理,可以这样配置:

git config --global http.https://github.com.proxy socks5://127.0.0.1:10808

四、常见问题与解决方法

SSL 证书错误

错误信息可能如下:

fatal: unable to access 'https://github.com/...': error setting certificate verify locations:
  CAfile: /mingw64/ssl/certs/ca-bundle.crt
  CApath: none

解决方法:告诉 Git 正确的 SSL 证书包路径。首先找到你 Git 安装目录下的 ca-bundle.crt 文件(通常在 Git/mingw64/ssl/certs/ 或类似路径),然后执行:

git config --system http.sslCAInfo "D:Program FilesGitmingw64sslcertsca-bundle.crt"

请将路径替换为你电脑上的实际路径。

首次使用 Git 的基本流程

配置好 SSH 和代理后,你可以顺畅地使用 Git:

# 1. 克隆仓库(使用 SSH 地址)
git clone git@github.com:username/repository.git

# 2. 进入项目目录,进行修改
cd repository

# 3. 将修改添加到暂存区并提交
git add .
git commit -m "你的提交说明"

# 4. 推送到远程仓库
git push origin main

注意:确保你克隆时使用的是 SSH 格式的 URL(以 git@github.com: 开头),而不是 HTTPS 格式的 URL,这样才能使用 SSH Key 进行认证。

发表评论

您的邮箱不会公开。必填项已用 * 标注。