GitHub身份验证与Git连接GitHubPages仓库

本文最后更新于 2025年5月18日 下午

1. GitHub Authentication

身份验证文档 - GitHub 文档

GitHub 支持不同的身份验证方式,供用户远程连接。(认证)

  • username & password | passkey
  • personal access token(个人访问令牌)
  • SSH key

SSH 协议(Secure Shell Protocol,安全外壳协议)可在不安全的网络上提供安全通道。推荐使用 SSH 连接到 GitHub,实现免密登录,且相对更安全。

1.1 username & password

略。

1.2 personal access token

2021.8.13起,Github要求使用基于令牌的身份验证 - 知乎

(按链接前半部分操作即可,token 权限设置为 repo。下方可略。)

Git 连接远程仓库,转为使用 token 进行认证:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 列出当前仓库中已配置的远程仓库,并显示它们的 URL。
git remote -v

# 修改指定远程仓库的 URL,添加 token 信息。
# 例如:origin https://<token>@github.com/<username>/<repo>.git
git remote set-url <remote_name> <new_url>

# or

# 从当前仓库中删除指定的远程仓库。
git remote remove <remote_name>
# 添加一个新的远程仓库。指定一个远程仓库的名称和 URL,将其添加到当前仓库中。
git remote add <remote_name> <remote_url>

1.3 SSH key

Secure Shell - 维基百科,自由的百科全书

Github配置ssh key的步骤(大白话+包含原理解释)-CSDN博客

通过 SSH 连接到 GitHub - GitHub 文档 操作即可。

  1. 检查本地主机是否已有 SSH 密钥
1
2
# Git Bash 执行该命令,以查看是否存在现有的 SSH 密钥。
ls -al ~/.ssh

默认情况下,GitHub 支持的公钥的文件名有:id_rsa.pubid_ecdsa.pubid_ed25519.pub 。如果没有,则创建新的 SSH 密钥对。

  1. 生成新 SSH 密钥
1
2
3
4
# Git Bash 执行该命令,以生成新 SSH 密钥。将电子邮件替换为 GitHub 电子邮件地址。
# -t 选项指定要生成的密钥的类型(type)。rsa、ecdsa、ed25519。
# -C 选项用于为生成的密钥添加一个注释(comment)。
ssh-keygen -t ed25519 -C "[email protected]"

该命令执行后,连按三次回车(跳过设置密钥文件路径、设置密钥密码、再次输入密钥密码),即可生成密钥对。

默认情况下,ssh-keygen 会在用户的主目录下的 .ssh/ 目录中(C:\Users\用户\.ssh\)生成密钥对。默认的文件名取决于你选择的密钥类型:id_type(私钥)和 id_type.pub(公钥)。

如果需要管理多个密钥,可以添加 -f 选项来覆盖默认行为,指定生成的密钥文件的路径和文件名。

Tip:建议将密钥保存在 .ssh/ 目录中,确保其权限,以保护你的私钥。私钥文件通常应该只有所有者有读写权限(chmod 600)。

  1. 新增 SSH 密钥到 GitHub 帐户
1
2
# Git Bash 执行该命令,以显示 SSH 公钥内容(或者使用文本编辑器打开公钥文件),将公钥复制到剪贴板。
cat ~/.ssh/id_ed25519.pub

点击右上角个人资料照片 → Settings → SSH 和 GPG keys → New SSH key。

  1. 测试 SSH 连接
1
2
# Git Bash 执行该命令,用于测试本地 SSH 连接到 GitHub 是否成功。
ssh -T [email protected]

如果 SSH 连接成功,GitHub 会返回一个欢迎信息。

2. Git 连接 GitHub Pages 仓库

之前,基于 hexo-deployer-git 部署本地静态博客到 GitHub Pages 时,Git 采用【HTTPS+密码】的方式连接 GitHub Pages 仓库。现在,连接方式可改为【HTTPS+token】或【SSH】,推荐【SSH】。


【HTTPS+密码】

1
2
3
4
5
# _config.yml
deploy:
type: git
repo: https://github.com/NingC5/NingC5.github.io.git # 采用【HTTPS+密码】
branch: main

【HTTPS+token】

1
2
3
4
5
# _config.yml
deploy:
type: git
repo: https://<token>@github.com/NingC5/NingC5.github.io.git # 采用【HTTPS+token】
branch: main

【SSH】

1
2
3
4
5
# _config.yml
deploy:
type: git
repo: [email protected]:NingC5/NingC5.github.io.git # 采用【SSH】,SSH见下图
branch: main

附录

  1. SSH

什么是SSH?SSH是如何工作的? - 华为

【科普】SSH都不懂,还搞什么网络 - 知乎

SSH简介及两种远程登录的方法-CSDN博客

  1. 加密算法

RSA、DSA、ECDSA、EdDSA 和 Ed25519 的区别 - Librarookie - 博客园

奇妙的安全旅行之RSA算法 - 个人文章 - SegmentFault 思否

非对称加密算法与数字签名 - MuXinu - 博客园

常用的数字签名算法包括:MD5withRSA/SHA1withRSA/SHA256withRSA/SHA1withDSA/SHA256withDSA/SHA512withDSA/ECDSA等 - bonelee - 博客园

加密算法(DES,AES,RSA,ECC,MD5,SHA1)简介_des aes rsa-CSDN博客

  1. 本机能通过 SSH 连接 GitHub 的原因——双方都集成 SSH 客户端。

Windows 支持 OpenSSH 了! - sparkdev - 博客园

[CMD] Windows SSH 连接服务器教程(系统自带方式)

Github配置ssh key的步骤(大白话+包含原理解释)_github生成ssh key-CSDN博客


GitHub身份验证与Git连接GitHubPages仓库
https://cornst.com/posts/GitHub身份验证与Git连接GitHubPages仓库.html
作者
shaton沙桐
发布于
2025年5月8日
更新于
2025年5月18日
许可协议