2016-12-29 6 views
1

У меня есть две учетные записи пользователей в Gitlab. Один с axmug пользователем, а другой с GbFlow.
При входе в систему с использованием пользователя axmug в настройках профиля есть любой ключ.
Но когда я вхожу в систему с использованием GbFlow пользователя, я создал файл ключа SSH, и я могу посмотреть его в настройках профиля.
Я использую Git Bash в Windows 7, и когда я печатаю cd /Users/Invitado/.ssh и ls, я могу посмотреть три файла: id_rsa, id_rsa.pub и known_hosts.
Этот ключ был сгенерирован с использованием axmug пользователей. У обоих пользователей разные адреса электронной почты.Несколько ключей SSH и учетных записей пользователей

Что я хочу сделать, это загрузить проект Android с помощью GbFlow пользователей. Когда я пытался, я напечатал следующее в командной строке Git Bash:

git init 
git remote add origin [email protected]:GbFlow/GlobalFlow.git 
git add .               
git commit 
git push -u origin master 

Все работало, кроме последней строки: git push -u origin master. В этот момент я показал ошибку:

Permission denied (publickey). 
fatal: Could not read from remote repository. 
Please make sure you have the correct access rights 
and the repository exists. 

У меня есть ключи, созданные. Что я делаю неправильно?

ответ

2

Invitado означает, что эти ключи ssh создаются с помощью учетной записи Guest.

Если вы не вошли в систему как Guest, но с вашей реальной учетной записи, SSH будет искать эти ключи в %HOME%\.ssh с HOME установленным по умолчанию %USERPROFILE%.
Тип set us для просмотра значения USERPROFILE.

This key was generated using axmug user.

Это не имеет значения, с которыми приходится местные Windows, были созданы эти ключи. Важным является , где общественность id_rsa.pub была скопирована на: в котором учетная запись GitLab. Смотрите «How to create your SSH Keys»

Это будет первой причиной, почему GitLab не проверяет подлинность вас правильно: переместить эти ключи в собственных %USERPROFILE%\.ssh, чтобы извлечь выгоду из GbFLow идентичности (Предполагается, что GbFlow профиля имеет открытый ключ в его/ее настройке).
Тип ssh -T [email protected] для подтверждения, что вы видите как GgFlow.


Если из одной и той же учетной записи локального Windows (Invitado или иным образом) вам нужно управлять двумя различными удаленными счета GitLab, затем увидеть Working with non-default SSH key pair paths и использовать %USERPROFILE%\.ssh\config файл.

# GbFlow 
Host gbflow 
Hostname gitlab.com 
RSAAuthentication yes 
User git 
IdentityFile ~/.ssh/gbflow_rsa 

# axmug 
Host axmug 
Hostname gitlab.com 
RSAAuthentication yes 
User git 
IdentityFile ~/.ssh/axmug_rsa 

Затем с помощью SSH URL bgflow:<user>/<repo.git> или axmug:<user>/<repo.git>

Это предполагает, что вы создали два различных набор ключей пары SSH.

Для gbflow (переименование существующих id_rsa/id_rsa.pub файлы):

~/.ssh/gbflow_rsa 
~/.ssh/gbflow_rsa.pub 

Для axmugssh-keygen -t rsa -P "" -C "axmug GitLab access" -q -f ~/.ssh/axmug_rsa):

~/.ssh/axmug_rsa 
~/.ssh/axmug_rsa.pub 
+0

Спасибо за ответы VonC. После поиска в Интернете я прочитал следующее сообщение: https://coderwall.com/p/7smjkq/multiple-ssh-keys-for-different-accounts-on-github-or-gitlab. Но я не могу подключиться к серверу, когда я ssh-add -D. Решение состоит в том, чтобы набрать eval 'ssh-agent -s' и повторить команду. Когда я возвращаю его, у меня такая же ошибка: не удалось открыть соединение с вашим агентом проверки подлинности. Как я могу это исправить? – axmug

+0

Нет необходимости в этом, если вы не создали закрытый ключ ssh с парольной фразой. – VonC

+0

Я набрал набор, и я ничего не наблюдал. После ввода ssh -T [email protected] я наблюдал, как Permission denied . Я застрял. Я не знаю, что делать. Я знаю, что мне нужно загрузить проект через https, но я не могу этого сделать, потому что когда я набрал git push -u origin master, я просмотрел ту же ошибку: Permission denied . Что я должен сделать, чтобы загрузить мой проект? Спасибо – axmug