2015-03-13 4 views
3

Конфигурация SSH на GitHub кажется кошмаром. У меня есть несколько учетных записей GitHub, но для которых я могу иметь несколько SSH-ключей. В разделе конфигурации GitHub SSH они упоминают это:Как использовать несколько ключей SSH на GitHub?

============
SSH-кейген -t RSA -C "[email protected]"

Создает новый ключ ssh, используя предоставленное электронное письмо в качестве ярлыка

Создание пары ключей/ключей rsa.

Мы настоятельно рекомендуем сохранить настройки по умолчанию так, как они есть, поэтому, когда вам будет предложено «Ввести файл для сохранения ключа», просто нажмите «Ввод», чтобы продолжить.

# Введите файл, в котором для сохранения ключа (/Users/you/.ssh/id_rsa): [Press ENTER]

Почему я должен всегда использовать файл id_rsa? Он перезапишет мои существующие ключи. Во всяком случае, я даю здесь новое имя и генерирую ключ. Я делаю все остальные шаги, добавляя его агенту, обновляя его в разделе ключей SSH GitHub.

После завершения всех этих шагов я пришел к заключительному этапу, который:

ssh -vT [email protected] 
Hi animesh11! You've successfully authenticated, but GitHub does not  provide shell access. 
debug1: channel 0: free: client-session, nchannels 1 
Transferred: sent 3128, received 1976 bytes, in 0.5 seconds 
Bytes per second: sent 6077.0, received 3838.9 
debug1: Exit status 1 

Все работяга доры, но почему-то до сих пор git clone жалуется:

MacBook-Pro:Documents animeshsaxena$ git clone [email protected]:regentmarkets/devbox.git 
Cloning into 'devbox'... 
ERROR: Repository not found. 
fatal: Could not read from remote repository. 

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

I am up to my wits end why the ssh -vT works and simple cloning doesn't. It doesn't seem logical, why would github put this step in the manual if they know it's freaking useless. 

Есть идеи?

+1

У вас может быть несколько ключей ssh ​​для разных учетных записей github, используйте файл конфигурации.git, которая выполняет проверку подлинности. Поиск в Интернете для использования и управления несколькими ключами ssh. – Bijendra

ответ

4

Я бы использовал конфигурацию .ssh для настройки различных конфигураций для каждого конкретного пользователя.

Например, изменить (или создать) файл конфигурации в папке .ssh под корень пользователей, и добавить что-то похожее на это:

Host user1-github 
    HostName github.com 
    User git 
    IdentityFile ~/.ssh/user1_rsa 
Host user2-github 
    HostName github.com 
    User git 
    IdentityFile ~/.ssh/user2_rsa 

user1_rsa Где и user2_rsa являются выходами ssh-keygen -t rsa -C "[email protected]" и ssh-keygen -t rsa -C "[email protected]"

Затем при тестировании просто используйте ssh -vT user1-github и ssh -vT user2-github.

Кроме того, когда клонирование репо использует git clone user1-github:username1/project.git или git clone user2-github:username2/project.git.

0

Я могу связать этот вопрос! Это случилось со мной тоже:

ERROR: Repository not found. 
fatal: The remote end hung up unexpectedly 

Мне сказали, что наиболее частой причиной этого происходит из-за орфографические ошибки в имени репозитория (с учетом регистра), делает хранилище действительно существует? Это также могут быть плохие разрешения для просмотра репозитория или в редких случаях, плохих настроек доступа SSH к репозиторию.

Я нашел ответ в разделе «Переполнение стека» GitHub: ERROR: Repository not found. fatal: The remote end hung up unexpectedly (different from similar posts apparently).

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