在日常开发工作中,SSH 密钥配置是实现安全、高效版本控制的重要环节。特别是当我们需要同时管理多个 Git 仓库,如 GitHub、Gitee、公司 GitLab 等时,一套合理的配置方案能大幅提升工作效率。
一、SSH 密钥生成
SSH 密钥采用非对称加密技术,包含公钥和私钥。公钥存放在远程服务器,私钥则妥善保存在本地,通过密钥对验证实现安全的无密码登录和数据传输。
生成密钥对
打开命令行工具(Windows 系统可使用 Git Bash、PowerShell;Linux 系统直接使用终端),执行以下命令:
ssh-keygen -t rsa -C "your_email@example.com" -f ~/.ssh/your_username
上述命令中,-t rsa指定使用 RSA 加密算法;-C参数后的邮箱地址是用于标识该密钥,方便后续管理;-f参数指定生成的密钥文件路径和名称。执行后,系统会提示设置密钥保护密码,可直接回车跳过(不设置密码)。
密钥文件存放路径
生成的公钥(your_username.pub)和私钥(your_username)文件会存放在.ssh目录下,不同系统的默认路径有所区别:
- Windows 系统:
C:/Users/当前用户名/.ssh - Linux 普通用户:
/home/当前用户名/.ssh - Linux 超级用户(root):
/root/.ssh
二、创建并编辑 SSH 配置文件
查找或创建 config 文件
进入.ssh目录,检查是否存在config文件。若不存在,可手动创建:
touch config
编辑配置文件
使用文本编辑器(如 Vim、Nano)打开config文件,添加仓库配置信息。以 GitHub 和公司 GitLab 为例:
# github配置
Host github.com
HostName github.com
User your_email@example.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/your_username_github
Port 22 # 默认端口为22,若有特殊需求可修改
# 公司gitlab配置
Host gitlab.example.com
HostName gitlab.example.com
User your_email@company.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/your_username_gitlab
Port 22 # 若公司GitLab使用特定端口,需按实际修改
上述配置中,Host是自定义的主机别名,方便后续操作;HostName为仓库实际域名;User填写注册邮箱;IdentityFile指定对应仓库的私钥文件路径。
三、测试免密配置是否成功
完成上述配置后,可通过以下命令测试免密登录是否正常:
# 测试github是否免密成功
ssh -T git@github.com
# 测试gitee是否免密成功
ssh -T git@gitee.com
# 测试公司gitlab是否免密成功
ssh -T git@gitlab.example.com
若配置正确,会收到欢迎信息,如Hi username! You've successfully authenticated, but GitHub does not provide shell access.
四、Git 配置多个仓库的要点
- 区分不同仓库的密钥:为每个仓库生成独立的密钥对,避免混淆。
- 合理命名密钥文件:命名时包含仓库标识(如
your_username_github、your_username_gitlab),便于管理。 - 精准配置 config 文件:根据不同仓库的域名、端口、用户名等信息,准确填写配置项。

被折叠的 条评论
为什么被折叠?



