2013-12-17 3 views
22

Я был в состоянии создать ключ и подключиться к GitHub следуя этим инструкциям с помощью командной строки успешно:не удалось получить ключи SSH, работающие между sourcetree и GitHub

https://help.github.com/articles/generating-ssh-keys

Однако, когда я пытаюсь подключиться с помощью Sourcetree и шпаклевка я не могу. Я пробовал:

  1. генерации нового ключа с ключом генератора замазки (SSH-2 RSA)
  2. вступает в ключевую фразу
  3. спасительную закрытого ключа
  4. сохранения открытого ключа и добавления. расширение паба
  5. копирование/вставка ключа из окна генератора замазки в GitHub
  6. attemping обновить ветви на рывок из моего частного хранилища GitHub из моего локального репозитория с помощью SSH клона URL я получил от GitHub

Я также попытался открыть ключ, сгенерированный из команд командной строки github, и хотел, чтобы я преобразовал его в ключ типа шпатлевки, который я сделал и сэкономил, и попытался с ним. Также не повезло.

Что я делаю неправильно?

ответ

40

Для того, чтобы это сработало, я перешел на Инструменты -> Параметры -> Клиент SSH и изменил его на OpenSSH. Я сгенерировал и загрузил несколько разных типов ключей, пытаясь заставить его работать, но я думаю, что это то, что в итоге это сделало.

+1

Да, это сделал трюк. Иногда попытка сделать что-то умнее только делает его глупее. Пробовал и доказал, что это путь. – HankCa

+6

Этот параметр отсутствует в клиенте Mac. Любая подсказка, где можно добавить пользовательские ключи ssh в mac sourcetree? – ScorpionKing2k5

+1

Это похоже на работу, когда опция «PuTTy/Plink» (выбранная по умолчанию SourceTree) не работает. Обратите внимание, что параметры «SSH Client» находятся на вкладке «Общие». – gbmhunter

19

В моем случае мне нужно было перейти на путь репо, основанный на git или ssh, а не на пути репо на https. Это приводит к тому, что SourceTree переключается на аутентификацию на основе SSH.

Этот параметр можно найти на Repository => Repository setting => Paths

Пример:

Правильный путей репо

[email protected]:<username>/<reponame>.git 

или

ssh://[email protected]/<username>/<reponame>.git 

(Примечание: если вы работаете с репо, которое не принадлежит вам, r eplace username с organization name)

Неправильный путь репо

https://github.com/<username>/<reponame>.git 

HTTPS пути Репо привести к SourceTree пытается быть очень умным и не суметь эффектно. Появится запрос на диалог GUI пользователя/пароля, который никогда не будет работать, если включена проверка подлинности с двумя факторами.

+0

Никогда бы это не сработало ... –

+1

Наконец-то простое рабочее решение. Благодаря! – Meriw

+1

Это действительно должен быть выбранный ответ. Следует отметить, что если это не ваше репо, имя организации . – Jeff

1

Возможно, вы захотите переключиться с OpenSSH на Putty/Plink и использовать встроенную Git вместо Git, предоставляемую операционной системой хоста. Сделать работу с ssh-agent в Windows немного сложнее, чем щелкнуть прямо из SourceTree и PuttyGen.

Если вы хотите использовать терминал для настройки SSH и запускать ssh-agent, см. Нижние два шага.

Steps

0

Для Sourcetree на MacOS мне пришлось изменить из OAuth на обычную проверку подлинности, используйте «мерзавец» в качестве имени пользователя (не мой GitHub имя пользователя), а также генерировать ключ SSH и ввести его в GitHub. Только тогда я мог бы клонировать репо GitHub через SSH в Sourcetree.

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