美文网首页
github配置多个ssh key

github配置多个ssh key

作者: 臻甄 | 来源:发表于2020-07-06 21:48 被阅读0次

问题

当有多个git账号的时候,比如一个github,用于自己进行一些开发活动,再来一个gitlab,一般是公司内部的git。这两者你的邮箱如果不同的话,就会涉及到一个问题,生成第二个git的key的时候会覆盖第一个的key,导致必然有一个用不了。

解决方案

我们可以在~/.ssh目录下新建一个config文件配置一下,就可以解决问题

Step1

  • 生成第一个ssh key,这里不要一路回传,让你选择在哪里选择存放key的时候写个名字,比如 id_rsa_github,之后的两个可以回车。
    完成之后我们可以看到~/.ssh目录下多了两个文件
ssh-keygen -t rsa -C "yourmail@gmail.com" 

Step2 把公钥复制到github配置的SSH Key里

公钥在id_rsa_github.pub里,Mac的复制可以用这种方式cat ~/.ssh/id_rsa_github.pub | pbcopy

Step3 打开ssh-agent

这里如果你用的github官方的bash,用:

ssh-agent -s

如果是其他的,比如msysgit,用:

eval $(ssh-agent -s)

略过这一步的话,下一步会提示这样的错误:Could not open a connection to your authentication agent.

Step4 添加私钥

ssh-add ~/.ssh/id_rsa_github

如果提示文件或目录不存在,就使用绝对地址。

Step5 创建config文件

在~/.ssh目录下创建名为config的文件

# gitee and github
# 注意:多个Host公用一个公钥时,
# 对应的HostName和Port必须跟在Host后面

# gitlab
Host gitlab.comp.com
  HostName gitlab.comp.com  //这里填你们公司的git网址即可
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa_gitlab
  User gitlab

# gitee
    Host gitee.com
    HostName gitee.com
    Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa

# gerrit
    Host gerrit.awaimai.com
    HostName gerrit.awaimai.com
    Port 8000
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_gerrit

# 其他的统一用id_rsa文件登陆,或者密码。
# 注意:这里的第二行后面有个password,就是同时允许密码登陆
# 不然第一次没加公钥,密码也登陆不了,会提示错误:Permission denied (publickey,password).
    Host *
    PreferredAuthentications publickey,password
    IdentityFile ~/.ssh/id_rsa

其中,Host和HostName填写git服务器的域名。

IdentityFile指定私钥的路径。

如果在Linux系统下提示错误:Bad owner or permissions on /home/gary/.ssh/config

说明config权限过大,chmod命令调整:

$ chmod 644 ~/.ssh/config

Step6 测试

然后用ssh命令分别测试:

ssh -T git@github.com

调试:如果到这里你没有成功的话,别急,教你解决问题的终极办法--debug
比如测试github:

ssh -vT git@github.com

-v 是输出编译信息,然后根据编译信息自己去解决问题吧。
就我自己来说一般是config里的host那块写错了。

3 关于用户名
如果之前有设置全局用户名和邮箱的话,需要unset一下

git config --global --unset user.name
git config --global --unset user.email

然后在不同的仓库下设置局部的用户名和邮箱

比如在公司的repository下

git config user.name "yourname" 
git config user.email "youremail"

在自己的github的仓库在执行刚刚的命令一遍即可。

这样就可以在不同的仓库,已不同的账号登录。

参考

https://www.awaimai.com/2200.html

相关文章

  • git总结

    GitHub创建远程仓库 配置多个SSH-key 当公司gitlab和自己的github都要配置ssh-key时,...

  • github配置多个ssh key

    问题 当有多个git账号的时候,比如一个github,用于自己进行一些开发活动,再来一个gitlab,一般是公司内...

  • SSH远程登陆

    本机需要配置多个ssh key 本机需要配置多个ssh key时,可以生成不同文件名的key。然后在~/.ssh目...

  • Git配置多个SSH-KEY

    git可以配置多个ssh-key。 生成多个ssh-key命令 添加私钥

  • gitlab--ssh key配置

    生成&配置ssh key 因为之前已经给github配置了ssh key,这里直接输出已经生成的ssh key 生...

  • 多个GitHub账号配置ssh key

    生成并添加第一个ssh key 在Git Bash中执行命令一路回车,会在~/.ssh/目录下生成id_rsa和i...

  • git配置多个SSH Key

    git配置多个SSH Key

  • Github使用笔记

    一、配置Github环境 安装Git 配置ssh-key 检查ssh-key的设置 生成新ssh-key 添加ss...

  • 本地Git关联多个Github账号 & SSH Config

    注:假设读者知道如何关联ssh key到Github账号。 场景 多个Github账号 希望通过ssh key关联...

  • Git配置多个SSH-Key & python中git的使用

    一、配置多个SSH-Key 当前电脑已设置过了一个ssh-key,终端查看已配置的SSH-Key文件 cd ~/....

网友评论

      本文标题:github配置多个ssh key

      本文链接:https://www.haomeiwen.com/subject/urzgqktx.html