配置 SSH 连接

SSH 是 github 比较原始的连接方式,如今不配置 SSH 连接也会自动通过浏览器认证 github,同样也可以正常连接。该部分本属于 Git 学习笔记(六) - 远程仓库,因为如今不必要配置将其移动到了本章节。

  • 切换到用户目录 使用命令行 创建 SSH密钥
1
2
ssh-keygen -t rsa -C "jamhus_tao@qq.com"    # 以邮箱生成密钥, 之后一直回车即可
start .ssh # 打开目录
  • 打开目录会看到两个文件 id_rsaid_rsa.pub 。其中 id_rsa私钥 ,不能公布给任何人;id_rsa.pub公钥 ,可以公布。这里需要将 公钥 配置给 github。找到 settings-SSH and GPG keys-New SSH key

配置 GPG 认证

为什么使用 GPG 认证

之前我遇到过一个很尴尬的问题,在一个协作仓库中我进行若干次 push,但是记录在 contributors 中的只有我的最开始两次提交。应该是我重装系统后 github 不再认证我的合法性。

通过配置 GPG 认证得以恢复。

但是还需要明确,在 GPG 认证后,commit 时需要输入密码。

  • 在 git 安装目录下打开 git-bash,后面的配置过程需要在这里完成。
  • git-bash 输入以下命令:
1
2
3
4
5
6
7
8
9
10
git config --global user.email    # 记住该输出
git config --global user.name # 记住该输出
gpg --full-generate-key # 连敲三次回车, 然后开始输入 name / email 等信息, 该信息需与前面一致, 可空
gpg --list-secret-keys --keyid-format=long
# /Users/hubot/.gnupg/secring.gpg
# ------------------------------------
# sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
# uid Hubot <hubot@example.com>
# ssb 4096R/4BB6D45482678BE3 2016-03-10
gpg --armor --export 3AA5C34371567BD2 # 3AA5C34371567BD2 是上面的 sec
  • 继续输入以下命令:
1
2
3
git config --global --unset gpg.format
git config --global user.signingkey 3AA5C34371567BD2 # 3AA5C34371567BD2 是上面的 sec
git config --global commit.gpgsign true
  • 添加到 github 的设置中。

image.png

  • 自行测试 GPG 认证。