2015-05-19 2 views
5

В настоящее время я использую GitLab как мой удаленный сервер GIT.
У меня нет проблем с использованием одной учетной записи Gitlab с назначенным ей ключом SSH.Как настроить два ключа SSH для двух учетных записей GitLab и нажать/вытащить, используя TortoiseGit?

Но теперь я применил еще одну учетную запись Gitlab, и я пытаюсь использовать для нее тот же ключ SSH, но я не могу добавить ключ к этой новой учетной записи.
Ошибка заключается в следующем, когда я попытался добавить ключ:

Ключ уже сделан
отпечатков пальцев уже принято

Так как я должен использовать один и тот же ключ для доступа к второй аккаунт Gitlab? Если это невозможно, как использовать два ключа одновременно.

Кстати, я использую систему windows.

Спасибо заранее!

=============================================================================================================================================== ====================== Обновления:

Ниже приведен файл конфигурации. И это выглядит следующим образом:

#my primary account 
Host {account1} 
    User git 
    HostName gitlab.com 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa1 

#for NPR_HPTG account 
Host {account2} 
    User git 
    HostName gitlab.com 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa2 

И у меня два счета Gitlab,

[email protected]:{account_1}/repo1.git 
[email protected]:{account_2}/repo1.git 

Тем не менее, я не могу получить доступ к account_2.

Раньше, прежде чем у меня есть эта вторая учетная запись GitLab, я просто загружаю ключ ssh в номер account1 без необходимости набора This. Но теперь, следуя этому, все же, в конце концов, я мог нажать на [email protected]:{account_2}/repo1.git. И я использую TortoiseGit для нажатия/вытягивания.

ответ

16

Просто объявите каждый приватные ключи SSH в %HOME%/.ssh/config файле:

Host gitlabuser1 
    User git 
    Hostname {hostname} 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa1 

Host gitlabuser2 
    User git 
    Hostname {hostname} 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa2 

Это предполагает свой набор ключей SSH являются:

%HOME%/.ssh/id_rsa1 ; %HOME%/.ssh/id_rsa1.pub 
%HOME%/.ssh/id_rsa2 ; %HOME%/.ssh/id_rsa2.pub 

Вы можете использовать URLs для клонирования/толчок/тянуть :

gitlabuser1:yourRepo1 
gitlabuser2:yourRepo2 

Убедитесь, что сессия CMD имеет %HOME% определяется, как правило, %USERPROFILE% (это делается для вас с git-cmd.bat)

У вас есть более подробная процедура in this blog post.

+0

Я склонен к тому, что просто написать 'IdentityFile id_rsa2' должен выбрать этот файл' id_rsa2' из '~/.ssh /', делая автоматическое правое. Я бы попытался посмотреть. – kostix

+0

@kostix Интересно. Обычно я всегда указываю полный путь. – VonC

+0

Какой должен быть правильный формат для hte 'gitlabuser1'. это что-то вроде этого: '[email protected]: my_username'? – 2342G456DI8

Смежные вопросы