GitLab 和 SSH 密钥
Git 是一个分布式版本控制系统,这意味着你可以在本地工作, 然后共享或“推送”您的更改到服务器。 在这种情况下,服务器是 GitLab。
GitLab 使用 SSH 协议来安全地与 Git 通信。 当您使用 SSH 密钥对 GitLab 远程服务器进行身份验证时, 您无需每次都提供用户名和密码。
先决条件
要使用 SSH 与 GitLab 通信,您需要:
- OpenSSH 客户端,预装在 GNU/Linux、macOS 和 Windows 10 上。
- SSH 6.5 或更高版本。 早期版本使用 MD5 签名,这是不安全的。
要查看系统上安装的 SSH 版本,请运行 ssh -V
.
支持的 SSH 密钥类型
要与 GitLab 通信,您可以使用以下 SSH 密钥类型:
- ED25519
- RSA
- DSA( 已弃用 在 GitLab 11.0 中 。)
- ECDSA(如 Practical Cryptography With Go 中所述 ,与 DSA 相关的安全问题也适用于 ECDSA。)
管理员可以 限制允许使用的密钥及其最小长度 。
ED25519 SSH 密钥
一书 Go 的实用密码学 表明 ED25519 高效 密钥比 RSA 密钥更安全、更 。
OpenSSH 6.5 在 2014 年引入了 ED25519 SSH 密钥,它们应该在大多数 操作系统。
RSA SSH 密钥
可用文档表明 ED25519 比 RSA 更安全。
如果您使用 RSA 密钥,美国国家科学技术研究所在 出版物 800-57 第 3 部分 (PDF) 建议密钥大小至少为 2048 位。 默认密钥大小取决于您的版本 ssh-keygen
. 回顾 man
您已安装的页面 ssh-keygen
命令了解详情。
查看您是否有现有的 SSH 密钥对
在创建密钥对之前,请查看密钥对是否已存在。
-
在 Windows、Linux 或 macOS 上,转到您的主目录。
-
前往
.ssh/
子目录。 如果.ssh/
子目录不存在, 你要么不在主目录中,要么你没有使用过ssh
前。 在后一种情况下,您需要 生成 SSH 密钥对 。 -
查看是否存在具有以下格式之一的文件:
算法 公钥 私钥 ED25519(首选) id_ed25519.pub
id_ed25519
RSA(至少 2048 位密钥大小) id_rsa.pub
id_rsa
DSA(已弃用) id_dsa.pub
id_dsa
ECDSA