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开头,包含你的邮箱)。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仓库(替换username和repository为实际值):
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
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa