Как настроить черепаху, чтобы не требовать пароль с помощью ssh
У меня возникли проблемы с получением git/tortoisegit для использования моего поставленного ключа ssh (созданного с помощью PuttyGen). В командной строке я получаю ошибку permission denied
, а в пользовательском интерфейсе TortoiseGit появляется запрос на ввод пароля. Я пробовал этот вопрос SO, но, как уже было сказано, я создал с PuttyGen, у меня работает Pageant с моими ключами, и я настроен на использование TortoisePlink.
Затем я нашел этот вопрос SO и попытался использовать ssh в каталоге git, TortoisePlink в моем TortoiseHG (используется для Bitbucket/Mercurial), и, как было сказано, уже попробовал локальную TortoisePlink в TortoiseGit.
О, и я установил свой ppk в моей учетной записи git, а также в разделе Git → Remote TortoiseGit
Итак, что мне не хватает?
Ответы
Ответ 1
Проверьте, что ваш исходный URL-адрес.
Щелкните правой кнопкой мыши папку проекта
TortoiseGit → Настройки
Выбрать
Git → Удаленный
и выберите начальную запись
Убедитесь, что URL-адрес начинается с ssh://и что ваш закрытый ключ загружен.
Если URL-адрес начинается с https://, он будет запрашивать ваш пароль каждый раз.
Надеюсь, что это поможет.
Ответ 2
Я тоже не мог работать с github/tortoisegit. Использование git из командной строки в linux отлично работало. Затем я прибегал к использованию моего имени пользователя/пароля, как описано здесь:
http://www.programmoria.com/2012/02/saving-tortoisegit-password.html
и в других местах. Это не реальное решение (извините), но обходное решение, которое обеспечивает одно и то же: автоматическая аутентификация без ввода вашего имени пользователя/пароля. Файл _netrc так же безопасен/небезопасен, как и закрытый ключ, который также будет храниться где-то на вашем компьютере, поэтому я считаю это приемлемым решением. Комментарии к этому приветствуются, конечно.
Ответ 3
Некоторые серверы Git несколько противоречат друг другу (IMHO), когда дело доходит до аутентификации. Например, Github docs говорят:
Все соединения должны быть выполнены как пользователь "git".
Итак, вместо того, чтобы пытаться подключиться к ssh://<yourname>@github.com...
, вам нужно подключиться к ssh://[email protected]
.
Меня больше не спрашивают пароль, и TortoiseGit теперь показывает Success
после завершения операции Push.
Ответ 4
Знает ли ваша учетная запись на сервере OpenSSH, что вы должны быть авторизованы с помощью открытого ключа?
Загрузите свой ключ с помощью PuTTyGen. Вы увидите текстовое поле только для чтения в разделе "Открытый ключ для вставки в файл OpenSSH authorized_keys". Скопируйте то, что там.
SSH с PuTTy на сервер SSH. Откройте файл ~/.ssh/authorized_keys
с помощью редактора и вставьте скопированный текст в новую строку и сохраните. Возможно, каталог ~/.ssh
еще не существует. В этом случае перед редактированием этого файла сделайте mkdir ~/.ssh
.
Ответ 5
Я также столкнулся с той же проблемой на v1.8.4, затем я переключил свой клиент ssh на plink и теперь стал работать нормально.
Настройки TortoiseGit → Сеть → клиент SSH
plink распространяется вместе с peagent и другими лакомствами в стандартном пакете шпатлевки
По-видимому, есть ошибка в некоторых версиях TortoiseGit (в частности, TortoisePlink)
см. этот ответ
Ответ 6
Я использую git 2.7 и tortoisegit 1.8.16
Вот что я сделал, чтобы не требовать пароля, и это сработало для моего случая
Щелкните правой кнопкой мыши папку проекта TortoiseGit → Настройки
Выберите git → Remote и выберите начальную запись
Изменить url из https://github... в ssh://git @github...
Ответ 7
Используя Tortoise 2.2.0.0, вам нужно сделать пару вещей. На вкладке удаленного доступа вы можете либо удалить исходное http (s), которое у вас уже есть, либо добавить вторую, используя ssh://и установить флажок "По умолчанию по умолчанию" для ssh, чтобы Tortoise использовал его для push по умолчанию (и начало https в моем случае для pull).
Только для ssh требуется указанный ключ, а затем, когда вы нажимаете, он должен по умолчанию использовать ваш новый источник ssh в качестве адресата и не запрашивать ваше имя пользователя и пароль.
Очевидно, вам нужно знать, какой пользователь должен иметь в вашем URL-адресе. Например, в Visual Studio Team Services это имя учетной записи VSTS (не владельца учетной записи!). Вам также может понадобиться номер порта.
Это все, что я сделал для настройки с нуля, и все получилось отлично.