多个Git配置多个ssh密钥

本文介绍了如何在同一台电脑上为不同的GitHub账号配置多个ssh密钥,包括生成新密钥、复制公钥到GitHub、设置~/.ssh/config文件以及解决权限问题。通过配置ssh代理,可以实现多个sshkey的管理和切换,确保每个GitHub账号的安全连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多个Git配置多个ssh密钥

同一台电脑的同一个ssh共钥无法配置到多个github账号。例如公司的电脑ssh公钥配置到公司的github账号后,无法在使用同一个公钥配置个人的github账号。这时候需要生成多个ssh密钥,分别配置给不同的github账户

生成新的ssh key

cd ~/.ssh
ssh-keygen -t rsa -f "test"

-f 给新生成的密钥自定义命名,否则生成的是默认密钥:id_rsa与id_rsa.pub 它会覆盖掉现有的默认密钥

执行完成后,会在 ~/.ssh/目录下生成一个 test 和 test.pub 文件

复制新的公钥到github账号

这一步登陆个人的giuhub账号,将新生成的公钥配置到guthub上即可。

配置~/.ssh/config 文件

如果没有config文件,就在~/.ssh目录创建config文件, 该文件用于配置ssh私钥对应的服务器

  1.  cd ~/.ssh
     vim config
    
    
  2.  # key1 公司的github账号
     # github
     Host github.com
     HostName github.com
     PreferredAuthentications publickey
     IdentityFile ~/.ssh/id_rsa
     
     # key2 个人的guthub账号, xxx.github.com. me是自定义的
     Host me.github.com
     HostName github.com
     PreferredAuthentications publickey
     IdentityFile ~/.ssh/test
    
    

Bad owner or permissions on ~/.ssh/config

主要是没有对config的权限,运行命令: sudo chmod 600 config

测试ssh到github服务器的连接

ssh -T git@me.github.com
ssh -T git@github.com 

如果出现一下提示,说明我们的配置成功,到此就可以结束了。

Hi USERNAME! You’ve successfully authenticated, but github does not provide shell access.

否则出现以下提示,说明系统ssh代理出现问题:

Permission denied (publickey)

出现以上原因主要是因为:

github使用SSH与客户端连接。如果是单用户(first),生成密钥对后,将公钥保存至 GitHub ,每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。单用户情况下,连接的服务器上保存的公钥和发送的私钥自然是配对的。但是如果是 多用户 (first,second),我们在连接到second的帐号时,second保存的是自己的公钥,但是SSH客户端依然发送默认私钥,即first的私钥,那么这个验证自然无法通过。

配置ssh key代理

1、查看系统ssh-key代理,执行如下命令:
ssh-add -l

以上命令如果输出The agent has no identities. 则表示没有代理。
如果系统有代理,可以执行下面的命令清除代理:
ssh-add -D

2、然后依次将不同的ssh添加代理,执行命令如下:
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/test

如果使用 ssh-add ~/.ssh/id_rsa的时候报如下错误,则需要先运行一下 ssh-agent bash 命令后再执行 ssh-add …命令
Could not open a connection to your authentication agent.

3、 再次进行ssh测试即可.

注意事项

ssh测试之后,在连接非默认账号的github仓库时,远程的地址要对应的作出修改.
配置了me.github.com用作个人的git我们就不能在用git@github了,要是用git@me.github.com

例:git clone git@me.github.com:账户名/仓库 而不是 git clone git@github.com:…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值