SSH 公钥管理
在 GitCode 中,您可以通过 SSH(安全外壳协议)公钥实现安全的代码托管和提交操作。SSH 公钥提供了以下优势:
- 便捷访问:使用 SSH 公钥后,您无需每次操作都输入密码,访问 GitCode 存储库更加高效。
- 访问控制:您可以将 SSH 公钥与特定存储库关联,灵活管理项目访问权限。
- SSH 公钥与私钥成对使用,请妥善保管私钥,避免泄露。
- 如果您在多个设备上使用 GitCode,建议为每个设备生成独立的 SSH 密钥对。
SSH 密钥类型
GitCode 支持以下两类 SSH 密钥:
ED25519 SSH 密钥
- 安全性更高:根据 Practical Cryptography With Go 的描述,ED25519 密钥比 RSA 密钥更安全。
- 广泛支持:自 2014 年 OpenSSH 6.5 引入 ED25519 后,所有主流操作系统均已支持该密钥类型。
RSA SSH 密钥
- 密钥长度建议:如果使用 RSA 密钥,建议密钥长度为 4096 位(至少 2048 位),以确保安全性。
- 兼容性:默认情况下,
ssh-keygen
命令生成的 RSA 密钥为 1024 位,建议升级至更高强度。 - 安全性提示:在 OpenSSH 7.8 之前,RSA 密钥的默认指纹基于 MD5,存在安全风险。如果您仍在使用旧版 RSA 密钥,建议升级至更安全的加密格式。
生成 SSH 密钥
生成 ED25519 SSH 密钥
-
打开终端
- 在 Linux/macOS 上,打开系统自带的终端
- 在 Windows 上,可以使用 Cmd、Power Shell 或 Git Bash
-
输入生成密钥的命令
运行以下命令,将
your_email@example.com
替换为您的邮箱:ssh-keygen -t ed25519 -C "your_email@example.com"
-t ed25519
:指定密钥类型为 ED25519。-C "your_email@example.com"
:添加注释,通常使用您的邮箱地址,便于识别密钥。
-
选择密钥保存位置
命令执行后,您将看到以下提示:
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/user/.ssh/id_ed25519):- 按 Enter 键接受默认位置(
~/.ssh/id_ed25519
)。 - 如果需要自定义保存路径,可以输入新的路径,例如:
~/.ssh/my_custom_key
。
- 按 Enter 键接受默认位置(
-
设置密钥密码(可选但推荐)
接下来,系统会提示您设置密码:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:- 输入一个安全的密码以保护您的私钥(建议使用强密码)。
- 如果不需要密码,直接按 Enter 键跳过。
提示设置密码后,每次使用 SSH 密钥时都需要输入该密码。这可以防止私钥被未经授权的人使用。
-
确认密钥生成成功
如果操作成功,您将看到类似以下的输出:
Your identification has been saved in /Users/user/.ssh/id_ed25519
Your public key has been saved in /Users/user/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:x8gFyNRIg5UsIhqYOnsDYhyxXJNhwBU2WcLs11b421g your_email@example.com
The key's randomart image is:
+--[ED25519 256]--+
|o+*@*O==o |
|*o*=* *o.o |
|+=o. .. o . |
|*o . . + = E |
|o+ . . S B |
|. o + . |
| . . |
| |
| |
+----[SHA256]-----+ -
查看生成的密钥
您可以通过以下命令查看生成的公钥内容:
cat ~/.ssh/id_ed25519.pub
您将得到类似下方的输出:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJx8z8z8z8z8z8z8z8z8z8z8z8z8z8z8z8z8z8z8z your_email@example.com
将此公钥内容复制,以便后续添加到 GitCode。
生成 RSA SSH 密钥
RSA 是一种广泛支持的 SSH 密钥类型,适用于大多数场景。为了确保安全性,建议使用 4096 位 的密钥长度(至少 2048 位)。
-
输入生成密钥的命令
运行以下命令,将
your_email@example.com
替换为您的邮箱地址:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-
-t rsa
:指定密钥类型为 RSA。 -
-b 4096
:指定密钥长度为 4096 位(推荐)。 -
-C "your_email@example.com"
:添加注释,通常使用您的邮箱地址,便于识别密钥。
-
-
选择密钥保存位置
命令执行后,您将看到以下提示:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):-
按 Enter 键接受默认位置(
~/.ssh/id_rsa
) -
如果需要自定义保存路径,可以输入新的路径,例如:
~/.ssh/my_custom_key
-
-
设置密钥密码(可选但推荐)
接下来,系统会提示您设置密码:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:-
输入一个安全的密码以保护您的私钥(建议使用强密码)
-
如果不需要密码,直接按 Enter 键跳过
密码的作用设置密码后,每次使用 SSH 密钥时都需要输入该密码。这可以防止私钥被未经授权的人使用。
-
-
确认密钥生成成功
如果操作成功,您将看到类似以下的输出:
Your identification has been saved in /Users/.ssh/id_rsa
Your public key has been saved in /Users/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:Ub+LOdZzqYTdq5t+mDAErdkTtzUbnB8VPXJs/cTBDPA your_email@example.com
The key's randomart image is:
+---[RSA 4096]----+
| ....o==B|
| ..o.o.*O=|
| .= o.E+*+|
| o.+ ... o|
| S. .. |
| o* o . |
| *o*o+ |
| . oo=.. |
| .*+. |
+----[SHA256]-----+-
私钥:
~/.ssh/id_rsa
(切勿泄露)。 -
公钥:
~/.ssh/id_rsa.pub
(可上传到 GitCode)。
-
-
查看生成的密钥
您可以通过以下命令查看生成的公钥内容:
cat ~/.ssh/id_rsa.pub
输出示例:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArV1... your_email@example.com
将此公钥内容复制,以便后续添加到 GitCode。
OpenSSH 6.5 ~ 7.8 的 RSA 密钥
在 OpenSSH 7.8 之前,RSA 密钥的默认指纹基于 MD5,存在安全风险。如果您使用的是 OpenSSH 6.5 至 7.8 版本,建议采取以下措施:
-
升级现有 RSA 密钥
如果您已有 RSA 密钥,可以通过以下命令将其升级为更安全的 OpenSSH 格式:
ssh-keygen -o -f ~/.ssh/id_rsa
-
生成新的 RSA 密钥
如果您需要生成新的 RSA 密钥,可以使用以下命令:
ssh-keygen -o -t rsa -b 4096 -C "your_email@example.com"
-o
:以更安全的 OpenSSH 格式保存私钥。