Windows11使用git命令行访问github
Contents
包含两个部分。第一部分是单纯的连接 github。第二部分是在第一部分的基础上使用代理功能。
1. git命令行访问github
1.1. 准备 SSH
|
|
注意是大写的 V。
确认是否安装了 ssh 工具。一般来说 Windows 11 是自带的。
1.2. 创建不带passphrase的ssh key
在命令行下进入 C:/Users/<Windows用户名>/.ssh/ 执行
|
|
这里 ed25519 是椭圆曲线数字签名算法。 这里 your_email@example.com 是邮箱。虽然不强制,但最好用自己的真实邮箱。
之后一路回车。 会在 C:/Users/<Windows用户名>/.ssh/ 下创建两个文件 id_ed25519 和 id_ed25519.pub
没有后缀名的那个是「私钥」。带有 .pub 后缀名的是「公钥」。 上面的两个文件名是默认的。也可以用
-f
参数指定所生成的文件名。比如: ssh-keygen -t ed25519 -C “your_email@example.com” -f “github_key” 生成的就是 github_key 和 github_key.pub
1.3. 将 ssh 公钥添加到github
- 用网页浏览器打开 github.com 并登录自己的账号。
- 点击右上角头像,进入 Settings
- 点击左侧导航栏 SSH and GPG keys
- 点击 “New SSH Key” (注意还有个 New GPG key 不要点错按钮了)
- 为密钥设置一个名字,比如我取名 My SSH 2025
- 将 .ssh/id_ed25519.pub 用文本编辑器打开,复制内容,粘贴到网页的 Key 字段里。
- 点击 “Add SSH key” 保存(这一步可能要输入github动态密码)
1.4. 测试
|
|
如果能看到"Hi xxx! ! You’ve successfully authenticated, but GitHub does not provide shell access.“就算成功。 现在可以在命令行执行 git clone 或者 git pull 之类命令了。
如果看到「Connection timed out」说明需要代理,不然无法使用 github。处理方法见下。
2. 让命令行git使用代理服务器
一般情况下,中国大陆访问 github.com 很容易遇到 Connection time out 错误。所以需要使用代理。
以下操作假设在本地有 Socks5 协议的代理服务器,地址127.0.0.1:10808
。
2.1. 准备代理工具
使用 connect.exe 作为代理连接工具。一般来说 git 自带 connect.exe,位于 “C:\Program Files\Git\mingw64\bin\connect.exe”
确认 connect.exe 处于可以直接访问的状态。即 exe 所在目录(那个bin)位于 Path 环境变量里。
2.2. 让git使用代理
用文本编辑器打开 ssh 配置文件,一般位于 C:/Users/<Windows用户名>/.ssh/config 添加
|
|
注1:这里 connect 是上面说的 connect.exe 注2:127.0.0.1:10808 是 Socks5 的代理地址和端口。
注意到配置里没有指定私钥文件名(比如 id_ed25519)。此时 git 会自动尝试 .ssh 下的几个默认文件名。如果想要用指定私钥,就在上面的配置里加一行 IdentityFile ~/.ssh/id_ed25519
|
|
Author
LastMod 2025-04-16