Ответ 1
Чтобы это сработало, я перешел в Инструменты → Параметры → Клиент SSH и изменил его на OpenSSH. Я сгенерировал и загрузил несколько разных типов ключей, пытаясь заставить его работать, но я думаю, что это то, что в конце концов это сделало.
Мне удалось создать ключ и подключиться к github, следуя этим инструкциям с помощью командной строки:
https://help.github.com/articles/generating-ssh-keys
Однако, когда я пытаюсь подключиться через Sourcetree и putty, я не могу. Я пробовал:
Я также попытался открыть ключ, сгенерированный в командах командной строки github, и хотел, чтобы я преобразовал его в ключ типа шпатлевки, который я сделал, и сохранил его, и попытался с ним. Также не повезло.
Что я делаю неправильно?
Чтобы это сработало, я перешел в Инструменты → Параметры → Клиент SSH и изменил его на OpenSSH. Я сгенерировал и загрузил несколько разных типов ключей, пытаясь заставить его работать, но я думаю, что это то, что в конце концов это сделало.
В моем случае мне нужно было переключиться на путь репо на git
или ssh
, а не на репо-путь https
. Это приводит к тому, что SourceTree переключается на аутентификацию на основе SSH.
Этот параметр можно найти в Repository => Repository setting => Paths
Пример:
Исправить пути репо
[email protected]:<username>/<reponame>.git
или
ssh://[email protected]/<username>/<reponame>.git
(Примечание: если вы работаете с репо, которое не принадлежит вам, замените username
на organization name
)
Неверный путь репо
https://github.com/<username>/<reponame>.git
Пути ретрансляции HTTPS приводят к тому, что SourceTree пытается быть более умным и неэффективным. Вам будет предложено диалоговое окно GUI пользователя/пароля, которое никогда не будет работать, если вы включили двухфакторную аутентификацию.
Возможно, вам захочется переключиться с OpenSSH на Putty/Plink и использовать встроенный Git вместо Git, предоставляемый операционной системой хоста. Сделать работу с ssh-agent в Windows немного сложнее, чем щелкнуть прямо из SourceTree и PuttyGen.
Если вы хотите использовать терминал для настройки SSH и запускать ssh-agent, см. нижние два шага.
Для Sourcetree на MacOS мне пришлось перейти от OAuth к базовой аутентификации, использовать "git" в качестве имени пользователя (не моего имени пользователя GitHub) и сгенерировать ключ SSH и ввести его в GitHub. Только тогда я мог бы клонировать репозиторий GitHub через SSH в Sourcetree.
Ответ @brettlyman работал на меня.
Для Sourcetree на MacOS мне пришлось перейти с OAuth на обычную аутентификацию, использовать "git" в качестве имени пользователя (не моего имени пользователя GitHub), сгенерировать ключ SSH и ввести его в GitHub. Только тогда я смог клонировать репозиторий GitHub через SSH в Sourcetree.