在将更改推送到GitLab服务器之前,您需要一个安全的通信通道来共享信息。
SSH协议提供了这种安全性,并允许您向GitLab远程服务器进行身份验证,而无需每次都提供用户名或密码。
1、创建SSH密钥对:
生成新的ED25519 SSH密钥对:
ssh-keygen -t ed25519 -C "email@example.com"
或者,生成新的RSA SSH密钥对:
ssh-keygen -o -t rsa -b 4096 -C "email@example.com"
-C 如果您有多个标记并想知道是哪个标记,则该标志会在键中添加注释。它是可选的。
2、保存SSH密钥
系统将提示您输入文件路径用以保存SSH密钥对。如果以前没有生成过SSH密钥对,建议使用默认路径 ,这样SSH客户端无需额外配置即可自动使用SSH密钥对。
确定路径后,将提示您输入SSH密钥对的保护密码。可选,可以通过按Enter两次跳过。
添加或更改SSH密钥对的密码的命令如下,
ssh-keygen -p -o -f <keyname>
3、将SSH密钥添加到您的GitLab帐户
头像 -> 设置 -> SSH密钥。
将公共密钥(以ssh-ed25519(或ssh-rsa)开头并以电子邮件结尾)粘贴到“ 密钥”字段中。
4、 测试所有设置是否正确
要测试是否正确添加了SSH密钥,请在终端中运行以下命令(替换gitlab.com
为GitLab的实例域):
// 将gitlab.com 替换为你自己的主机域名即可
ssh -T git@gitlab.com
示例:
注意:
首次通过SSH连接到GitLab时,将要求您验证所连接的GitLab主机的真实性。例如,连接到GitLab.com时,请回答yes
将GitLab.com添加到受信任主机列表中:(添加到known_hosts列表)
The authenticity of host 'gitlab.com (35.231.145.151)' can't be established.
ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitlab.com' (ECDSA) to the list of known hosts.