Несколько ключей SSH не работают

OS Description: Ubuntu 14.04.3 LTS
ssh: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 Jan 2014

Я не могу использовать несколько ключей SSH для Gitlab. Я получаю ошибку

GitLab: The project you were looking for could not be found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists. 

Я почти уверен, что все сделал правильно. Это мой конфигурационный файл.

Host work gitlab.com
    Hostname gitlab.com
    IdentityFile ~/.ssh/ida_rsa
    User git

Host integrate gitlab.com
    Hostname gitlab.com
    IdentityFile ~/.ssh/ida_rsa_personal
    User git

Ключи добавляются автоматически в ssh-agent, но чтобы убедиться, что я также добавил ключ вручную

$ ssh-add -l
2048 e7:08:d6:8c:00:28:31:f9:3f:21:4a:0f:4e:1e:ee:20 id_rsa (RSA)
2048 ff:22:f6:90:2b:7c:9f:ed:45:41:df:79:06:de:fe:81 id_rsa_personal (RSA)

Мой ssh-агент тоже работает

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-uTC6tA5HMt1x/agent.4899; export SSH_AUTH_SOCK;
SSH_AGENT_PID=4900; export SSH_AGENT_PID;
echo Agent pid 4900;

Разрешения ключа SSH

-rw-------  1 yogi yogi  1679 jun 25 15:38 id_rsa
-rw-------  1 yogi yogi  1679 ago 25 10:53 id_rsa_personal
-rw-r--r--  1 yogi yogi   404 ago 25 10:53 id_rsa_personal.pub
-rw-r--r--  1 yogi yogi   391 jun 25 15:41 id_rsa.pub

Я добавил мой открытый ключ ssh на gitlab.

Может ли кто-нибудь сказать мне, что мне не хватает?

Примечание:- Я заметил, что из моих двух клавиш ssh верхняя клавиша ssh ( id_rsa - e7:08....) работает нормально.

$ ssh-add -l
**2048 e7:08:d6:8c:00:28:31:f9:3f:21:4a:0f:4e:1e:ee:20 id_rsa (RSA)**
2048 ff:22:f6:90:2b:7c:9f:ed:45:41:df:79:06:de:fe:81 id_rsa_personal (RSA)

Если я добавлю id_rsa_personal(ff:22..) после id_rsa, то id_rsa_personal начнет работать нормально и id_rsa перестанет работать.

$ ssh-add -l
**2048 ff:22:f6:90:2b:7c:9f:ed:45:41:df:79:06:de:fe:81 id_rsa_personal (RSA)**
2048 e7:08:d6:8c:00:28:31:f9:3f:21:4a:0f:4e:1e:ee:20 id_rsa (RSA)

Я думаю, что ssh-agent не может перебирать ключи. Он читает только первый ключ и останавливается. Это ошибка в openssh? Если да, то какой обходной путь?

Спасибо

2 ответа

Тебе нужно иметь ~/.ssh/config файл

Внутренний файл

# Default GitHub user
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/personalid

# Work user account
Host bitbucket.org
    HostName bitbucket.org
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/workid

Подробности можно найти по ссылке ниже https://confluence.atlassian.com/bitbucket/configure-multiple-ssh-identities-for-gitbash-mac-osx-linux-271943168.html

Если домен один и тот же, используйте другой хост

Host work.gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa.work

Host home.gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa.home

Очистить кеш

ssh-add -D

Добавить все ключи SSH

ssh-add ~/.ssh/id_rsa.work
ssh-add ~/.ssh/id_rsa.home

Также установите URL вашего репозитория в (.git/config), как указано ниже:

url = git@work.gitlab.com:xxxxxxxxxx.git
url = git@home.gitlab.com:yyyyyyyyy.git 

Если ваш файл конфигурации SSH, как то, что я предложил.

Добавление этих строк поможет
мне столкнуться с той же проблемой https://i.imgur.com/3cj3EWH.png

Другие вопросы по тегам