【GitHub】Windows10 和 WSL2 对 GitHub 进行 SSH 身份验证

1 远程仓库

参考文档: Link

远程 URL 是 Git 一种指示“代码存储位置”的绝佳方式。用户只能推送到两类 URL 地址:

  • HTTPS URL,如 https://github.com/user/repo.git
  • SSH URL,如 git@github.com:user/repo.git

1.1 使用 HTTPS URL clone

HTTPS URL 在所有存储库上都可用,在命令行上使用 HTTPS URL 对远程仓库执行 git clone、git fetch、git pull 或 git push 时,Git 将要求你提供 GitHub 用户名和密码。

2.2 使用 SSH URL clone

SSH URL 通过 SSH(一种安全协议)提供 Git 仓库的访问权限。 若要使用这个 URL,必须在 PC 上生成 SSH 密钥对,并将公钥添加到你的 GitHub 帐户中。

如果不在GiHub 账户中添加公钥,则会在 git clone 的时候输出下面的报错信息。
在这里插入图片描述

2 Windows10 使用命令行进行身份验证

参考文档: Link

可以通过两种方式从命令行访问 GitHub 上的仓库:HTTPS 和 SSH,两者采用不同的身份验证,验证方法取决于 clone 仓库时选择的是 HTTPS 还是 SSH URL。

2.1 HTTPS

如果不使用 GitHub CLI 进行身份验证,则必须使用 personal access token。

2.1.1 管理个人访问令牌

参考文档: Link

具体配置参考上述文档,很少用到就不搞了。

2.2 SSH

  1. 在生成新的 SSH 密钥之前,检查本地计算机是否存在现有密钥

参考文档: Link

  • 打开 Git Bash
  • 输入 ls -al ~/.ssh

检查 .ssh 目录是否存在或者 .ssh 目录中是否已经有 SSH 公钥(文件后缀名为 .pub)。

  1. 生成新 SSH 密钥以用于身份验证,然后将其添加到 ssh-agent

参考文档: Link

  • 以管理员身份运行 PowerShell

  • 替换为自己的邮箱,创建新 SSH 密钥

ssh-keygen -t ed25519 -C "your_email@example.com"

按 Enter 键接受默认文件位置(若要更改密钥文件的名称,先输入默认文件位置,再将 id_ed25519 替换为自定义名称)→ 按 Enter 键不设置密码。

在这里插入图片描述

  • 可以在这里 C:\Users\{username}\.ssh 找到生成的密钥和公钥
    在这里插入图片描述

  • 确保 ssh-agent 正在运行

Get-Service -Name ssh-agent | Set-Service -StartupType Manual
Start-Service ssh-agent
  • 将 SSH 密钥添加到 ssh-agent
ssh-add c:/Users/{username}/.ssh/id_ed25519

在这里插入图片描述

  1. 将 SSH 公钥添加到 GitHub 上的帐户

参考文档: Link

  • 以管理员身份运行 PowerShell

  • 复制 SSH 公钥

cat ~/.ssh/id_ed25519.pub
  • GitHub 的 Setting 中找到 SSH and GPG keys,点击 New SSH key
    在这里插入图片描述

  • Title 起个名字,Key 中填刚刚复制的公钥内容
    在这里插入图片描述

  1. 测试 SSH 连接
ssh -T git@github.com
  • 如果打印如下信息,即成功:Hi xxxx! You've successfully authenticated, but GitHub does not provide shell access.
  • 如果出现连接超时: ssh: connect to host github.com port 22: Connection timed out,则通过 HTTPS 端口使用 SSH

官方文档: Link

.ssh/config 文件中加入以下内容:

Host github.com
    Hostname ssh.github.com
    Port 443
    User git

3 WSL2 使用命令行进行身份验证

前提是 Windows 已完成上述配置

  1. 使用 Windows 创建的密钥
cat /mnt/c/Users/{username}/.ssh/id_ed25519 >> id_windows
chmod 600 id_windows

要确保密钥文件的权限为 rw------- (600)

在这里插入图片描述

  1. 在后台启动 ssh 代理
eval "$(ssh-agent -s)"
  1. 将密钥添加到 ssh-agent
ssh-add ~/.ssh/id_windows
  1. 测试 SSH 连接
ssh -T git@github.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G.Chenhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值