ssh密钥相关操作

本文介绍如何在同一台电脑上配置多个Git账号的SSH密钥,包括生成不同账号的密钥、设置config文件以及取消SSH私钥密码的方法。

一、 git配置多个ssh-key
应用场景:同一台电脑,有多个git账号,最常见的场景是

  • 公司git账号:testName1,服务器域名:git.company.com
  • 私人git账号1:testName2,服务器域名:gitee.com
  • 私人git账号2:testName3,服务器域名:code.aliyun.com
    这个时候就需要用到多git账号管理
    解决方案:
    (一)生成公司git账号的密钥:
    ssh-keygen -t rsa -C 'xxxxx@company.com' -f ~/.ssh/company_id_rsa
    (二)生成私人git账号1的密钥:
    ssh-keygen -t rsa -C 'xxxxx@yourself.com' -f ~/.ssh/gitee_id_rsa
    (三)生成私人git账号2的密钥
    ssh-keygen -t rsa -C 'xxxxx@yourself.com' -f ~/.ssh/aliyun_id_rsa
    (四)在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)
Host company
HostName git.company.com
User testName1
IdentityFile ~/.ssh/company_id_rsa

Host gitee
HostName gitee.com
User testName2
IdentityFile ~/.ssh/gitee_id_rsa

Host aliyun
HostName code.aliyun.com
User testName3
IdentityFile ~/.ssh/aliyun_id_rsa

保存后不会立即生效,需要添加一下,命令如下:

ssh-add ~/.ssh/company_id_rsa
ssh-add ~/.ssh/gitee_id_rsa
ssh-add ~/.ssh/aliyun_id_rsa

如果执行ssh-add命令报这个错误的话:

Could not open a connection to your authentication agent

先执行这条命令:

eval `ssh-agent`

再执行上面的ssh-add命令。

然后可以通过ssh的测试连接命令进行测试,命令如下:

ssh -T git@git.company.com
ssh -T git@gitee.com
ssh -T git@code.aliyun.com

当服务器返回与你打招呼的语言,那恭喜你,说明你配置成功啦!
如果出现错误提示,如:
Permission denied (publickey)
则请检查是否按照如上操作正确配置,请仔细检查!希望能帮你解决这一问题。
二、取消 SSH 私钥密码
进入~/.ssh目录,执行ssh-keygen -f id_rsa -p,其中id_rsa是需要修改私钥的名称,执行后会先输入旧密码,然后两次回车,不输入新的密码,则当前私钥的密码被清除,同时这个操作是可以修改当前私钥的密码。

GitLab配置SSH密钥的详细操作步骤如下: ### 生成SSH密钥 可以使用以下命令生成SSH密钥: ```bash ssh-keygen -t rsa -C "<你的gitlab对应使用邮箱>" ``` 在生成过程中,会有如下交互: ```plaintext Generating public/private rsa key pair. Enter file in which to save the key (C:\Users\name/.ssh/id_rsa): ``` 此时可选择要存密钥文件位置,若直接回车则使用默认位置。接着: ```plaintext Enter passphrase (empty for no passphrase): ``` 这里可输入密码,若想无密码访问直接回车。然后再次确认密码: ```plaintext Enter same passphrase again: ``` 完成后会显示公钥和私钥的存放位置,如: ```plaintext Your identification has been saved in C:\Users\name/.ssh/id_rsa. Your public key has been saved in C:\Users\name/.ssh/id_rsa.pub. ``` 示例如下: ```plaintext C:\Users\HTHT>ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (C:\Users\name/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:\Users\name/.ssh/id_rsa. Your public key has been saved in C:\Users\name/.ssh/id_rsa.pub. The key fingerprint is: SHA256:888888888888888888888888888888888 The key's randomart image is: +---[RSA 3072]----+ | .+X=. ooO+o | | *.o . X.O | | ooO+o = %.o | | E . B.= . | | S ..* . o | | . = .. o | | o o o o | | ooO+o | | . . | +----[SHA256]-----+ ``` 如果不确定是否已经生成过密钥,可以到指定路径下查看,若已经生成过就不用再次生成,可直接跳到添加公钥步骤。例如输入的路径是`/c/Users/aizi/.ssh/id_rsa`,检查该路径下是否有密钥文件即可 [^4][^5]。 ### 切换到SSH密钥存储目录 使用以下命令切换当前工作目录SSH密钥文件通常存储的默认位置: ```bash cd ~/.ssh ``` ### 查看并复制公钥 使用以下命令打印公钥文件的内容: ```bash cat id_rsa.pub ``` 然后复制输出的公钥内容。 ### 在GitLab上添加SSH公钥 登录GitLab账号,进入个人设置页面,找到SSH Keys选项,将复制的公钥粘贴到相应的输入框中,点击添加密钥按钮完成添加 [^1][^3]。 ### 多密钥配置(若有需要) 如果已经有其他仓库(如在GitHub等)的密钥,存在多密钥配置问题,由于使用了多个SSH密钥(如`id_rsa`和`id_rsa_gitlab`),需要在SSH配置文件中明确指定`id_rsa_gitlab`用于`git.dslab.lzu.edu.cn` [^2]。 ### 密钥过期处理 若GitLab密钥过期,可重新生成SSH密钥,步骤与上述生成SSH密钥步骤一致,然后在GitLab中添加新密钥 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值