如何配置GitLab的SSH密钥
SSH密钥是GitLab实现安全身份验证的核心方式,替代传统密码认证,提升代码托管与协作的安全性。以下是详细的配置步骤:
在生成新密钥前,建议先检查本地是否已有可用密钥,避免重复创建。打开终端(Linux/macOS为系统终端,Windows推荐使用Git Bash),执行以下命令:
ls -al ~/.ssh
若输出中包含id_rsa.pub(公钥)或id_ed25519.pub(Ed25519密钥),说明已有密钥,可直接跳至步骤3;若未找到,则需生成新密钥。
SSH密钥对由私钥(id_rsa/id_ed25519,需严格保密)和公钥(id_rsa.pub/id_ed25519.pub,需上传至GitLab)组成。推荐使用Ed25519算法(安全性更高),命令如下:
ssh-keygen -t ed25519 -C "你的邮箱地址@example.com"
若需使用RSA算法(兼容旧系统),可替换为:
ssh-keygen -t rsa -b 4096 -C "你的邮箱地址@example.com"
交互提示说明:
Enter键接受默认路径(~/.ssh/id_ed25519或~/.ssh/id_rsa);Enter键跳过。生成密钥后,需复制公钥内容至GitLab。执行以下命令查看公钥(以id_ed25519.pub为例):
cat ~/.ssh/id_ed25519.pub
或使用clip命令(Windows Git Bash)直接复制到剪贴板:
clip < ~/.ssh/id_ed25519.pub
注意:公钥内容以ssh-ed25519(Ed25519)或ssh-rsa(RSA)开头,以你的邮箱地址结尾,需完整复制(勿遗漏换行符或空格)。
登录GitLab官网,进入个人设置:
配置完成后,需验证密钥是否生效。执行以下命令(将gitlab.example.com替换为你的GitLab服务器域名或IP):
ssh -T git@gitlab.example.com
首次连接提示:若出现“Are you sure you want to continue connecting (yes/no)?”,输入yes并回车;
成功标志:若显示“Welcome to GitLab, @你的GitLab用户名!”,说明SSH密钥配置成功。
若需管理多个GitLab账户或服务器,可通过修改~/.ssh/config文件(不存在则创建)指定不同密钥:
nano ~/.ssh/config
添加以下内容(示例):
# 默认GitLab服务器
Host gitlab.com
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_ed25519
# 公司内部GitLab服务器
Host gitlab.company.com
HostName gitlab.company.com
User git
IdentityFile ~/.ssh/id_ed25519_company
保存后,使用对应Host别名即可连接不同服务器(如ssh -T git@gitlab.company.com)。
600(仅所有者可读写),执行以下命令修改:chmod 600 ~/.ssh/id_ed25519
ssh-agent缓存密码(避免每次使用都输入),命令如下:eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
完成以上步骤后,你即可通过SSH协议克隆、推送或拉取GitLab仓库,无需每次输入用户名和密码(需使用SSH格式的仓库地址,如git@gitlab.example.com:group/project.git)。