温馨提示×

GitLab在Linux上如何配置SSH密钥

小樊
55
2025-10-08 01:47:33
栏目: 智能运维

1. 生成SSH密钥对
在Linux终端中执行以下命令生成RSA类型的SSH密钥对(密钥长度4096位,安全性更高),替换your_email@example.com为你的GitLab注册邮箱:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

按提示操作:

  • 默认保存路径为~/.ssh/id_rsa(直接回车确认);
  • 可选设置密码短语(增强私钥安全性,每次使用私钥时需输入,直接回车则无密码)。
    生成的密钥对中,私钥id_rsa)需严格保密,公钥id_rsa.pub)需添加到GitLab。

2. 启动SSH代理并添加私钥
启动SSH代理进程,用于管理私钥:

eval "$(ssh-agent -s)"

将私钥添加到SSH代理中(若私钥路径为默认,直接使用~/.ssh/id_rsa):

ssh-add ~/.ssh/id_rsa

若设置了密码短语,此时需输入密码完成添加。

3. 将公钥添加到GitLab账户

  • 查看公钥内容并复制:
    cat ~/.ssh/id_rsa.pub
    
    复制终端输出的完整公钥(以ssh-rsa开头,包含你的邮箱)。
  • 登录GitLab,进入个人设置
    点击右上角头像→选择“Settings”(设置)。
  • 添加SSH密钥:
    左侧菜单选择“SSH Keys”→在“Title”字段输入描述性名称(如“My Laptop”)→将复制的公钥粘贴到“Key”字段→点击“Add key”按钮。

4. 测试SSH连接
在终端执行以下命令,验证SSH配置是否正确:

ssh -T git@gitlab.com

若配置成功,将显示欢迎消息(如“Welcome to GitLab, @your_username!”),表示你已可以通过SSH协议与GitLab交互。

5. 配置SSH客户端(可选,多密钥场景)
若需管理多个SSH密钥(如同时连接GitHub和GitLab),编辑或创建~/.ssh/config文件,添加以下内容:

Host gitlab.com
  HostName gitlab.com
  User git
  IdentityFile ~/.ssh/id_rsa_gitlab  # 自定义私钥路径
  IdentitiesOnly yes

保存后,使用ssh -T git@gitlab.com测试连接,SSH客户端会自动使用配置的私钥。

6. 使用SSH克隆仓库
配置完成后,可通过SSH URL克隆GitLab仓库(替换usernamerepository为实际值):

git clone git@gitlab.com:username/repository.git

此后,推送(git push)或拉取(git pull)代码时,Git会自动使用SSH密钥进行身份验证,无需重复输入密码。

常见问题解决

  • 权限问题:确保~/.ssh目录权限为700(仅所有者可读写执行),私钥文件权限为600(仅所有者可读写):
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_rsa
    
  • 密钥未生效:若修改配置后仍无法连接,重启SSH服务或重新加载配置:
    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_rsa
    

0