美文网首页
Git配置多个SSHKey

Git配置多个SSHKey

作者: HF_K | 来源:发表于2022-08-24 16:25 被阅读0次

背景

很多公司都选择git作为代码版本管理工具,然后公司搭建私有的gitlab来管理代码,我们有时候也有自己的git需要管理,我们在clone代码的时候可以选择http协议,当然我们亦可以选择ssh协议来拉取代码。这时候我们就需要生成多个ssh key来满足需求。

解决方案

配置单个SSH Key

单个SSH生成

配置多个SSH Key

多数时候我们电脑上会有很多的git host,比如公司gitlabgithub、个人的等,那我们就需要在本地配置多个ssh key,使得不同的host能使用不同的ssh key ,做法如下(以gitlabgithub为例):

  1. 生成gitLab生成的ssh key

     ssh-keygen -t rsa -C 'yourEmail@xx.com' -f ~/.ssh/gitlab-rsa
    
  2. github生成的ssh key

     ssh-keygen -t rsa -C 'yourEmail@xx.com' -f ~/.ssh/github-rsa
    
  3. 查看ssh目录下是否存在config文件,如果没有则需要生成config文件。

     //生成config文件
     touch config
    
  4. config文件中配置多个不同的host使用不同的ssh key

     # gitlab
     Host gitlab.com
         Host gitlab
         HostName gitlab.com
         User xxx@qq.com
         PreferredAuthentications publickey
         IdentityFile ~/.ssh/gitlab-rsa.pub
     # github
     Host github.com
         Host github
         HostName github.com
         User xxx@qq.com
         PreferredAuthentications publickey
         IdentityFile ~/.ssh/github-rsa.pub
     # 配置文件参数
     # Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
     # HostName : 要登录主机的主机名( 服务器IP)
     #  Port 22 : 端口
     # User : 用户名
     # IdentityFile : 指明上面User对应的identityFile路径,认证文件
     # StrictHostKeyChecking : yes 关闭提示
    

注意⚠️:生成ssh key时,-f ~/.ssh/gitlab-rsa~/.ssh/gitlab-rsa是生成路径,必须正确。

问题

按照常规方法生成 ssh key ,并将 public key 添加到 git 账户中后,ssh 链接失败,一直报错 com@gitlab.com: Permission denied (publickey).

问题

使用ssh -vvv git@gitlab.com可调试 ssh ,结果如下:

结果

通过调用ssh -vvv git@gitlab.com查看详细的报错信息,我发现每次本地寻找私钥的时候都找不到对应的文件,但是这些文件的路径是正确的呀,我开始思考是不是在ssh_config文件中没有设置对应的路径呢?

所以去etc\ssh\ssh_config文件中查看,发现大部分全部被注释掉了。

解决办法

找到 ssh_config 文件,做出如下设置:

Host *
    SendEnv LANG LC_*
    IdentityFile ~/.ssh/github-rsa
    IdentityFile ~/.ssh/gitlab-rsa
    HostkeyAlgorithms +ssh-rsa  
    PubkeyAcceptedAlgorithms +ssh-rsa
    PubkeyAcceptedKeyTypes +ssh-rsa

重新链接即可成功。

相关文章

  • Git配置多个SSHKey

    背景 很多公司都选择git作为代码版本管理工具,然后公司搭建私有的gitlab来管理代码,我们有时候也有自己的gi...

  • Git多个sshkey

    写的非常好,无需再整理:Github的SSH KEY配置

  • Git配置SSHKey

    一、设置Git的user name和email git config --global user.name "xu...

  • MAC多个SSHKey配置

    第一步 判断是否已经存在本地公钥 cat ~/.ssh/id_rsa.pub(或者自己想要的,例如my_rsa.p...

  • ubuntu 使用 vscode git

    安装git支持 sudo apt-get install git 设置自己的sshkey ssh key配置祥见c...

  • macOS sshkey配置git

    一 生成sshkey的方法: 1 :打开终端 输入 $ssh-keygen 连敲三次回车,生成的SSH key文...

  • git使用方法

    1.git配置 1.1)配置sshkey 生产key:ssh-keygen -t rsa -C "邮箱地址" cd...

  • Git配置免密登录

    Git配置免密登录Gitee,其他GitHub、Gitlab操作类似。 生成 sshkey ssh-keygen ...

  • sourceTree使用

    ssh key 多秘钥文件配置git sshkey muliti in windows,使用OpenSSH链接bi...

  • 【学了就忘】GitHub — 71.Git配置多个用户的SSH-

    1、为什么要配置多个SSHKey 因为有的时候会出现这样的Git使用场景,就比如我们在公司里面,会有一个公司的Gi...

网友评论

      本文标题:Git配置多个SSHKey

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