Как я могу подключиться к GitLab с двумя разными пользователями ssh? - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть две учетные записи GitLab - одна для моих личных проектов и одна для работы - и у них обоих сгенерированы и добавлены ключи SSH.Существует id_rsa для рабочей учетной записи (потому что это то, что я создал первым) и id_rsa_personal для личной.Мой ~/ssh/config выглядит следующим образом:

Host gitlab-personal
    Preferredauthentications publickey
    User personalusername
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa_personal
Host gitlab-work
    Preferredauthentications publickey
    User workusername
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa

Тем не менее, когда я запускаю ssh -vvvT git@personalusername.gitlab.com, я получаю следующее:

OpenSSH_7.6p1 Ubuntu-4, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/personalusername/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "personalusername.gitlab.com" port 22
ssh: Could not resolve hostname personalusername.gitlab.com: Name or service not known

Четвертая строка (Applying options for *), кажется,указать, что ssh проигнорировал обе мои настройки конфигурации и выбрал значения по умолчанию, которые должны использовать id_rsa.Так как это мой рабочий аккаунт, я не могу клонировать свои личные репозитории, что приводит к следующей ошибке:

git clone git@gitlab.com:personalusername/personalproject.git personalprojecttest
Cloning into 'personalprojecttest'...
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.

Похожий вопрос с ответом ( gitlab с двумя ключами ssh не подключается(конфигурация обновлена) ), но это говорит об указании имени пользователя в Git config.Моя проблема в том, что у меня нет или я не хочу глобальной конфигурации Git, так как я выполняю как личную, так и рабочую работу на одной машине.Я предпочитаю иметь локальную конфигурацию Git (в ./.git/config), однако эта папка еще не существует, поэтому у меня нет локальной конфигурации Git.

Я использую Ubuntu 18.04.

Ответы [ 3 ]

0 голосов
/ 27 ноября 2018

Как обычно, я сам исправил проблему после написания этого вопроса.Я изменил свой файл ~/ssh/config следующим образом:

Host gitlab.com
    Preferredauthentications publickey
    User personalusername@personalemailaddress.com
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa_personal
Host gitlab.com
    Preferredauthentications publickey
    User workusername@workemailaddress.com
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa

Я просто изменил User personalusername, чтобы использовать адрес электронной почты вместо имени пользователя.После этого я смог успешно клонировать свои личные проекты.

Также команда ssh -vvvT git@personalusername.gitlab.com была неправильной.Правильный - просто ssh -vvvT git@gitlab.com, на выходе которого упоминались обе клавиши.Это то, что заставило меня дать команду git clone еще один выстрел, просто чтобы проверить.

0 голосов
/ 27 ноября 2018

~ / .ssh / config:

Host gitlab-personal
    User git
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa_personal
    Preferredauthentications publickey

Host gitlab-work
    User git
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa
    Preferredauthentications publickey

Затем попробуйте ssh -vvvT gitlab-personal, ssh -vvvT gitlab-work.

Выполнить

git clone gitlab-personal:personalusername/personalproject.git
0 голосов
/ 27 ноября 2018

Вы пробовали ssh-add ~/.ssh/id_rsa_personal?Ключи от стенда должны быть добавлены в ssh-agent.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...