【Git】GitHub 的两种 URL 及其身份验证
- 1 远程仓库 URL
- 1.1 HTTPS URL
- 2.2 SSH URL
- 2 身份验证
- 2.1 HTTPS
- 2.1.1 管理个人访问令牌
- 2.2 SSH 密钥对
1 远程仓库 URL
参考官方文档: Link
远程 URL 是 Git 一种指示“代码存储位置”的绝佳方式。用户只能推送到两类 URL 地址:
- HTTPS URL,如
https://github.com/user/repo.git
- SSH URL,如
git@github.com:user/repo.git
(推荐使用)
1.1 HTTPS URL
HTTPS URL 在所有存储库上都可用,在命令行上使用 HTTPS URL 对远程仓库执行 git clone、git fetch、git pull 或 git push 时,Git 将要求你提供 GitHub 用户名和密码。
2.2 SSH URL
SSH URL 通过 SSH(一种安全协议)提供 Git 仓库的访问权限。 若要使用这个 URL,必须在PC上生成 SSH 密钥对,并将“公共”密钥添加到你的 GitHub 帐户中。
如果不在GiHub 账户中添加公钥,则会在 git clone 的时候输出下面的报错信息。
2 身份验证
参考官方文档: Link
Windows 和 Linux 以下内容同理,且 Linux 无需使用 Git Bash
2.1 HTTPS
有三种身份验证方式:
- 选择通过浏览器(browser)或者利用验证码(code)进行身份验证(无需配置,推荐)
- 选择使用个人访问令牌(token)进行身份验证
2.1.1 管理个人访问令牌
参考官方文档: Link
具体配置参考上述文档,很少用到就不搞了。
2.2 SSH 密钥对
参考官方文档: Link
- 在生成新的 SSH 密钥之前,检查本地计算机是否存在现有密钥
- 打开 Git Bash
- 输入
ls -al ~/.ssh
检查目录列表以查看是否已经有 SSH 公钥。
默认情况下,GitHub 的一个支持的公钥的文件名是以下之一: id_rsa.pub、id_ecdsa.pub、id_ed25519.pub
- 如果没有现有的 SSH 密钥对,则创建新的 SSH 密钥对
- 打开 Git Bash
- 替换为自己的 GitHub 电子邮件地址,这将以提供的电子邮件地址为标签创建新的 SSH 密钥
ssh-keygen -t ed25519 -C "your_email@example.com"
- 按三次 Enter 键,接受默认文件位置,不设置密钥密码
- 可以在这里
C:\Users\{username}\.ssh
找到生成的私钥和公钥(pub文件)
- 将 SSH 私钥添加到 ssh-agent
- 打开 Git Bash
- 确保 ssh-agent 正在运行
eval "$(ssh-agent -s)"
- 将 SSH 私钥添加到 ssh-agent
ssh-add ~/.ssh/id_ed25519
文章来源:https://uudwc.com/A/6zn9m
- 将 SSH 公钥添加到 GitHub 上的帐户
- 复制 SSH 公钥
cat ~/.ssh/id_ed25519.pub
- GitHub 的
Setting
中找到SSH and GPG keys
,点击New SSH key
- Title 随便起个名字,
Key
中填刚刚复制的公钥内容
- 验证是否成功
ssh -T git@github.com
如果打印如下信息,即成功:
Hi xxxx! You've successfully authenticated, but GitHub does not provide shell access.
文章来源地址https://uudwc.com/A/6zn9m