This commit is contained in:
@@ -126,11 +126,31 @@ ssh-keygen -t ed25519-sk -O resident -O verify-required -O application=ssh:<name
|
|||||||
方法一: 使用 `ssh-copy-id`
|
方法一: 使用 `ssh-copy-id`
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
ssh-copy-id -i /path/to/public-key.pub [username]@[server_ip]
|
ssh-copy-id -i /path/to/key.pub [username]@[server_ip]
|
||||||
```
|
```
|
||||||
|
|
||||||
方法二: 将公钥内容插入服务器 `~/.ssh/authorized_keys` 文件的末尾
|
方法二: 将公钥内容插入服务器 `~/.ssh/authorized_keys` 文件的末尾
|
||||||
|
|
||||||
|
**将公钥添加至 GitHub**:
|
||||||
|
|
||||||
|
- 将密钥作为 SSH 密钥上传至 GitHub: SSH 公钥必须添加到 GitHub 账户的 SSH 和 GPG 密钥设置。
|
||||||
|
- 前往 GitHub > 设置 > SSH 和 GPG 密钥。
|
||||||
|
- 点击“添加 SSH 密钥”。
|
||||||
|
- 粘贴您的公钥。
|
||||||
|
|
||||||
|
修改 `/path/to/.ssh/config`
|
||||||
|
|
||||||
|
``` title="~/.ssh/config"
|
||||||
|
Host github.com
|
||||||
|
HostName ssh.github.com
|
||||||
|
User git
|
||||||
|
Port 443
|
||||||
|
PreferredAuthentications publickey
|
||||||
|
IdentityFile "/path/to/.ssh/key"
|
||||||
|
```
|
||||||
|
|
||||||
|
测试能否正常连接: `ssh -T git@github.com`
|
||||||
|
|
||||||
**在新设备上使用常驻密钥**:
|
**在新设备上使用常驻密钥**:
|
||||||
|
|
||||||
常驻密钥具有便携性,可以轻松取回私钥句柄和公钥文件。
|
常驻密钥具有便携性,可以轻松取回私钥句柄和公钥文件。
|
||||||
@@ -147,7 +167,93 @@ ssh-keygen -K
|
|||||||
|
|
||||||
### 使用 PicoKeys 与 SSH/FIDO2 进行 Git 提交签名
|
### 使用 PicoKeys 与 SSH/FIDO2 进行 Git 提交签名
|
||||||
|
|
||||||
https://zhuanlan.zhihu.com/p/691575345
|
检查 OpenSSH 版本,建议为 OpenSSH 8.3 或以上。检查 Git 版本,建议为 Git 2.34 或以上。
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
ssh -V
|
||||||
|
|
||||||
|
git --version
|
||||||
|
```
|
||||||
|
|
||||||
|
**设置 Git 默认用户名与邮箱**:
|
||||||
|
|
||||||
|
此处设置的邮箱必须与在 GitHub/GitLab/Gitea 中设置的一致。
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
git config --global user.name "username"
|
||||||
|
git config --global user.email "your.email@example.com"
|
||||||
|
```
|
||||||
|
|
||||||
|
**生成 ed25519-sk 密钥**:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
ssh-keygen -t ed25519-sk -O resident -O verify-required -O application=ssh:git-signing -O user=<name> -C "Git Signing Key"
|
||||||
|
```
|
||||||
|
|
||||||
|
**为 Git 配置 SSH 签名**:
|
||||||
|
|
||||||
|
将 Git 的 GPG 格式设置为 SSH:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
git config --global gpg.format ssh
|
||||||
|
```
|
||||||
|
|
||||||
|
指定签名密钥(公钥):
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
git config --global user.signingkey /path/to/your/git-signing-key-public.pub
|
||||||
|
```
|
||||||
|
|
||||||
|
启用自动提交签名和自动标签签名:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
git config --global commit.gpgSign true
|
||||||
|
git config --global tag.forceSignAnnotated true
|
||||||
|
```
|
||||||
|
|
||||||
|
**创建并配置 allowed_signers 文件**:
|
||||||
|
|
||||||
|
`allowed_signers` 文件每行的格式为: `[email] namespaces="git" [git_signing_public_key_string]`
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
``` title="allowed_signers"
|
||||||
|
your.email@example.com namespaces="git" ssh-ed25519 AAAAC3NzaC1lZYourPublicKeyData... Git Signing Key
|
||||||
|
```
|
||||||
|
|
||||||
|
请确保 `your.email@example.com` 与在 `git config user.email` 设置的邮箱完全匹配。`namespaces="git"` 对于限定密钥权限范围至关重要。
|
||||||
|
|
||||||
|
在 Git 中设定 `allowed_signers` 文件的位置:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
git config --global gpg.ssh.allowedSignersFile /path/to/your/.ssh/allowed_signers"
|
||||||
|
```
|
||||||
|
|
||||||
|
**本地验证签名情况**:
|
||||||
|
|
||||||
|
- 针对提交: `git log --show-signature`
|
||||||
|
- 针对标签: `git tag -v <tag-name>`
|
||||||
|
- 查看是否有 `Good "git" signature for your.email@example.com with ED25519-SK key ...`
|
||||||
|
|
||||||
|
**在 GitHub 与 Gitea 上获取“已验证”标志**:
|
||||||
|
|
||||||
|
GitHub:
|
||||||
|
|
||||||
|
- 将您的签名密钥作为 SSH 密钥上传至 GitHub: 用于签名的 SSH 公钥必须以认证密钥的形式添加到 GitHub 账户的 SSH 和 GPG 密钥设置。
|
||||||
|
- 前往 GitHub > 设置 > SSH 和 GPG 密钥。
|
||||||
|
- 点击“添加 SSH 密钥”。
|
||||||
|
- 粘贴您的签名公钥。
|
||||||
|
- GitHub 会将此密钥生成的签名与您的账户关联,并在**提交者邮箱与 GitHub 账户已验证邮箱匹配**时,将提交标记为“已验证”。
|
||||||
|
|
||||||
|
Gitea:
|
||||||
|
|
||||||
|
- 将您的签名密钥作为 SSH 密钥上传至 Gitea: 用于签名的 SSH 公钥必须以认证密钥的形式添加到 Gitea 账户的 SSH 和 GPG 密钥设置。
|
||||||
|
- 前往 Gitea > 设置 > SSH 和 GPG 密钥。
|
||||||
|
- 点击“添加 SSH 密钥”。
|
||||||
|
- 粘贴您的签名公钥。
|
||||||
|
- 点击“验证”按钮,[按照提示验证公钥](https://blog.cattom.site/tech/Snippets/#gitea)。
|
||||||
|
- Gitea 会将此密钥生成的签名与您的账户关联,并在**提交者邮箱与 Gitea 账户已验证邮箱匹配**时,将提交标记为“已验证”。
|
||||||
|
|
||||||
|
|
||||||
## PicoKeys 指示灯
|
## PicoKeys 指示灯
|
||||||
|
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ nav:
|
|||||||
- "小米 CR6608": tech/CR6608.md
|
- "小米 CR6608": tech/CR6608.md
|
||||||
- "Mi 8 UD (equuleus)": tech/Mi8UD(equuleus).md
|
- "Mi 8 UD (equuleus)": tech/Mi8UD(equuleus).md
|
||||||
- "Redmi 4X (santoni)": tech/Redmi4X(santoni).md
|
- "Redmi 4X (santoni)": tech/Redmi4X(santoni).md
|
||||||
|
- "PicoKeys: YubiKey 的开源平替": tech/Picokeys.md
|
||||||
- "手把手教你备份和还原 Docker 卷": tech/Backup-and-Restore-of-Docker-Volumes-A-Step-by-Step-Guide.md
|
- "手把手教你备份和还原 Docker 卷": tech/Backup-and-Restore-of-Docker-Volumes-A-Step-by-Step-Guide.md
|
||||||
- "在 Ubuntu 24.04 上添加交换空间": tech/How-to-Add-Swap-Space-on-Ubuntu-2404.md
|
- "在 Ubuntu 24.04 上添加交换空间": tech/How-to-Add-Swap-Space-on-Ubuntu-2404.md
|
||||||
- "安装和配置 Material for MkDocs": tech/Install-Material-for-MkDocs.md
|
- "安装和配置 Material for MkDocs": tech/Install-Material-for-MkDocs.md
|
||||||
|
|||||||
Reference in New Issue
Block a user