SourceTree в Windows: Как подключиться к SSH?

У меня есть SSH-доступ к моему веб-хостингу, он отлично работает с PuTTY (мне просто нужно было ввести свой домен, имя пользователя и пароль), однако с SourceTree это кажется намного сложнее.

в то время как PuTTY имеет поле для "имя хоста", "имя пользователя" и "пароль", SourceTree не делает и требует специального файла ".ppk"?!

мне нужно подключить SourceTree к моему веб-хостингу через SSH по очевидной причине, что я хочу использовать его для нажатия на удаленный репозиторий, расположенный на моем веб-хостинг.

Так как сделать .ppk файл, созданный из моего домена / имени пользователя / пароля? любая помощь очень ценится!

PS: я заметил, что они сделали его исключительно легко подключиться к BitBucket, предлагая два простых поля: "Имя пользователя" и "пароль", и сделал его исключительно трудно подключиться к стороннему SSH... Является ли это преднамеренной попыткой предотвратить конкуренцию?!

3 ответов


существует два способа подключения SourceTree к любому SSH.

1: Самый Простой Способ

самый простой способ-использовать ваше доменное имя, имя пользователя и пароль, предоставленные вашим хостинг-провайдером:

просто используйте следующий синтаксис: ssh://username@example.com/ – SourceTree предложит вам ввести пароль всякий раз, когда вы нажимаете на этот SSH:

SourceTree SSH Password Prompt

при проверке ваш пароль будет сохранен, и вам не будет предложено снова для него. Вы можете изменить или удалить сохраненный пароль позже, перейдя в Tools > Options > Authentication как показано на рисунке ниже:

SourceTree Windows Authentication Panel

Примечание: В моем случае (1&1 Общий хостинг) имя пользователя и пароль были такими же, как моя основная учетная запись FTP.

2: Более Сложный Путь

более сложный способ-использовать пару закрытых / открытых ключей:

это означает создание двух ключей (один "частный" и один "открытый") с помощью " Генератор Шпаклевки "(в SourceTree перейти к Tools > Create or Import SSH Keys).

после создания сохраните закрытый ключ .ppk файл и загрузите его в SourceTree (Tools > Create or Import SSH Keys > Load). Это еще не конец: теперь вы должны добавить открытый ключ к вашему серверу. Для этого добавьте его в файл на вашем веб-сервере: /.ssh/authorized_keys.

если этот файл не существует, сохраните открытый ключ в файл с именем authorized_keys и загрузить его на ваш сервер через FTP. Вы должны загрузить его в каталог с именем /.ssh/ расположенном в корень (если он не существует, просто создайте его).

Примечание: обязательно используйте main FTP аккаунт вашего хостинга аккаунта. Если это не работает, настройте разрешения (chmod)authorized_keys файл и установите его в 777 использование программного обеспечения FTP (Right-click on "authorized_keys" > File permissions):

FileZilla FTP Client Change File Permissions

FileZilla FTP Client on Windows - Set chmod

нет необходимости в командной строке вообще.


У меня были проблемы с SourceTree, работающим с существующим репозиторием git, который находился на gitlab. Мне также пришлось выяснить, почему он не подключался, поскольку я использовал puttygen для генерации ключей.

убедитесь, что после создания ключей экспортировать его в формат OpenSSH

enter image description here

вы помещаете этот файл в свой c:\user\MYUSERNAME - ... папка ssh как файл:

  • id_rsa
  • id_rsa.паб

id_rsa-это файл закрытого ключа и .pub - это файл открытого ключа, который вы вставляете в другое приложение, которое в моем случае было gitlab.


Мне пришлось сделать дополнительную работу из Patoshi это.

в Tools > Options > General > SSH Client Configuration мне пришлось указать его на ключ id_rsa и выбрать OpenSSH в качестве SSH-клиента (Putty/PLink выбран по умолчанию). SSH Client Configuration

затем каждый раз, когда вы запускаете SourceTree, появится приглашение с запросом парольной фразы для расшифровки ключа id_rsa (предполагая, что вы создали его с парольной фразой для шифрования). Это выглядит как так: passphrase prompt

в этот момент я мог бы перейти на страницу клонирования, вставить SSH-адрес из моего проекта Gitlab (git@localgit.местный: бла / что угодно.git) и он клонировал его. Никаких дополнительных подсказок для имени пользователя или пароля (поскольку он использует ключи SSH).