Git多个ssh key配置

本文介绍了如何在Git中配置多个SSH密钥,并实现不同项目的独立身份验证。包括设置用户名和邮箱、生成和管理SSH密钥、配置SSH密钥对应的不同主机等步骤。

最近在整理电脑,发现很多配置啥的有点乱。对于强迫症的人来说确实很难受。 所以有今天的关于git上ssh多配置小结,希望能帮助到发现这篇博客的你。

设置Git的user name 和 eamil
$ git config --global user.name "xxx"
$ git config --global user.email"xxx@gmail.com"    

假如之前你已经配置了账户名和密码,可以调用这个方法查看

$ git config user.name
chengchao
$ git config user.email
oscc92@gmail.com
生成相应的密钥
  1. $ssh-keygen - t rsa -C “xxxx@gmail.com”
  2. 通过上面的可以生成一个默认的id_rsa 和id_rsa_pub
  3. 那么假如我们要再按上面的命令和覆盖之前的,我们可以使用这个命令
  4. $ssh-keygen -t rsa -C ‘second@mail.com’ -f id_rsa_second
  5. 这样我们就可以生成不一样的了。
配置文件

修改~/.ssh/config,我的配置如下 你可以自己配置你想要的。

  Host github.com 
       User “chengchao”  
       IdentityFile ~/.ssh/id_rsa
  Host gitlab.xxx.com 
       User “chengchao”  
       IdentityFile ~/.ssh/id_rsa_xxxx

将你的 rsa-pub写入对应的平台

测试是否可以访问

这里测试github的

ssh -T git@github.com
<think>嗯,用户想配置GitLab的SSH Key以实现无密码认证。首先,我需要回忆之前提供的步骤,并结合用户给出的引用内容。用户之前的问题是关于用VSCode的Remote-SSH连接远程主机,现在转向GitLab的SSH配置,可能需要调整步骤的重点。首先,生成SSH密钥对的步骤应该和之前类似,但用户提到在引用[1]中,生成密钥时不要设置密码,以便免密操作。不过,在引用[4]中,用户遇到了需要输入密码的问题,可能是因为ssh-agent未启动。所以,在步骤中可能需要包含生成无密码的密钥,并处理ssh-agent的配置。然后,添加公钥到GitLab的步骤,用户引用[1]和[3]都提到在GitLab的Settings里找到SSHKeys部分,复制公钥内容。这里需要详细说明如何找到这个页面,特别是不同版本的GitLab界面可能有所不同,但大致路径应该是头像→Settings→SSHKeys。接下来,测试连接的部分,用户引用[1]和[2]提到了使用ssh-T命令来验证,可能需要检查返回的信息是否正确,比如欢迎消息。此外,引用[2]中的PTY分失败问题,可能需要给出解决方案,比如添加-T选项,或者在配置文件中调整设置。 用户可能遇到的问题包括权限问题,比如密钥文件的权限不正确,或者公钥未正确添加。引用[4]中提到服务器没有启动ssh-agent,导致每次都需要输入密码,所以需要指导用户配置.bashrc文件,自动启动ssh-agent并添加密钥。 另外,用户可能混淆了GitLab的SSH配置和之前VSCode的SSH连接,需要明确区分两者的步骤。例如,GitLab的SSHKey配置主要是为了代码仓库的访问,而VSCode的SSH连接是远程开发环境。确保回答专注于GitLab部分,但如果有相关问题,可以链接到之前的回答。最后,常见问题部分需要涵盖用户可能遇到的典型问题,如权限错误、连接失败、仍然需要密码等,并给出具体的解决命令,如chmod600,检查ssh-agent等。同时,生成相关问题需要考虑用户可能的后续疑问,比如多账户管理、安全风险、不同Git托管平台配置等。</think>### GitLab配置SSH Key实现无密码认证的完整指南 #### 1. **生成SSH密钥对** - 打开本地终端执行命令: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` - 连续按3次回车(不设置密码)[^1][^2] - 密钥默认保存在: - 私钥:`~/.ssh/id_rsa` - 公钥:`~/.ssh/id_rsa.pub` - 注意:Windows路径为`C:\Users\用户名\.ssh`[^1] #### 2. **添加公钥到GitLab** 1. 登录GitLab网页端 2. 右上角点击头像 → **Settings** → **SSH Keys**[^1][^3] 3. 复制公钥内容: ```bash cat ~/.ssh/id_rsa.pub # Linux/macOS type %userprofile%\.ssh\id_rsa.pub # Windows ``` 4. 点击**Add Key**粘贴公钥,标题可自定义(如"My Laptop Key")[^3] #### 3. **测试SSH连接** ```bash ssh -T git@gitlab.example.com # 替换为实际GitLab域名 ``` - 首次连接输入`yes`确认指纹 - 成功时显示:`Welcome to GitLab, @username!`[^1][^2] #### 4. **配置Git客户端** - 设置全局用户信息(与GitLab账号一致): ```bash git config --global user.name "Your Name" git config --global user.email "your_email@example.com" ``` - 克隆仓库使用SSH协议: ```bash git clone git@gitlab.example.com:group/project.git ``` #### 5. **常见问题解决** - **仍要求输入密码**: 1. 检查密钥权限: ```bash chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa ``` 2. 启动ssh-agent: ```bash eval $(ssh-agent -s) ssh-add ~/.ssh/id_rsa ``` 3. 将以下配置添加到`~/.bashrc`实现自动加载[^4]: ```bash if [ -z "$SSH_AUTH_SOCK" ]; then eval $(ssh-agent -s) ssh-add ~/.ssh/id_rsa fi ``` - **PTY分错误**: ```bash ssh -T -p 22 git@gitlab.example.com # 添加-T参数 ``` #### 配置验证示例 $$ \begin{aligned} \text{连接测试结果} &= \begin{cases} 1 & \text{成功} \\ 0 & \text{失败} \end{cases} \\ \text{成功条件} &= (\text{密钥匹}) \land (\text{权限正确}) \land (\text{网络可达}) \end{aligned} $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值