Несколько ключей 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