github/gitlab…. ssh key 多配置

发布于 2020-08-26  730 次阅读


该方法是用来解决同一个ssh key出现该指纹已被取走的情况,虽然可以去仓库设置一下解决这种问题,但是我觉得还是没啥必要,不如做单独配置

1、生成 sshkey,生产一个叫gitlab-rsa的key和github-rsa的key

ssh-keygen -t rsa -C 'yourEmail@xx.com' -f ~/.ssh/gitlab-rsa
ssh-keygen -t rsa -C 'yourEmail2@xx.com' -f ~/.ssh/github-rsa

2、开始配置配置文件

在~/.ssh 下生成一个叫config的文件,此文件不需要后缀,格式如下

# gitlab
Host gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitlab_id-rsa
# github
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_id-rsa

文件写好之后,git clone拉项目应该会碰到以下错误

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/root/.ssh/gitlab_id-rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/root/.ssh/gitlab_id-rsa": bad permissions
Permission denied (publickey).

碰到以上情况把权限改成700即可

chmod -R 700 /root/.ssh/gitlab_id-rsa

如果配置没有问题的话就ok了,但是配置没有对的话又会出现以下问题

Load key "/root/.ssh/gitlab-rsa.pub": invalid format
git@gitlab.com: Permission denied (publickey).

这种情况发生的话是两种情况导致的

1、没有把公钥设置到对应平台的个人信息中 github/gitlab 其他平台一样

2、本地配置文件错误,这个时候需要检查本地配置文件

我碰到一次这个错误是把IdentityFile ~/.ssh/github_id-rsa 错误的写成了IdentityFile ~/.ssh/github_id-rsa.pub导致的


一个逐渐被时间遗忘掉的人