Tortoisegit спрашивает пароль

85

Я только начал работать над Git. Я использую Windows 7 и установил msysgit (1.7.8) и Tortoisegit (1.7.6). Репозиторий создается на сервере Linux, доступном через локальную сеть. Проблема, с которой я столкнулся, заключается в том, что я не могу клонировать репозиторий с помощью Tortoisegit, он запрашивает пароль, и я не уверен, какой пароль он запрашивает. При этом я мог клонировать репозиторий с помощью Git Gui и выполнять все операции. Может ли кто-нибудь помочь мне понять, почему Tortoisegit запрашивает пароль, а Git Gui - нет. Я попытался удалить Git и Tortoisegit, а затем установить снова, но безуспешно.

Ошибка Tortoisegit

прамодтех
источник
ваш сервер git использует аутентификацию pubkey?
Felix Yan
Что делает TortoiseGit и что делает графический интерфейс Git в ОДНОМ клоне репозитория?
manojlds
2
Когда вы щелкаете правой кнопкой мыши Tortoise Git, выбираете Настройки. В Git есть ссылка -> Remote, щелкните по ней. В удаленном списке щелкните origin. Справа вы увидите URL. Вместо вашего имени пользователя в URL напишите: имя пользователя: <ваш пароль>. Наконец, когда вы выполните операцию git из Tortoise Git, вы увидите, что он никогда не спрашивает вас о пароле.
kamaci 05
1
Вы используете http URI вместо SSH? Это была моя проблема
парень из CAD
Для «особых» среди нас (включая меня) не забудьте удалить бит 'git clone' в
начале

Ответы:

134

Коллега решил проблему. Шаги:

  1. Щелкните правой кнопкой мыши -> TortoiseGit -> Настройки -> Сеть
  2. Клиент SSH указывал на C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
  3. Изменен путь к C:\Program Files (x86)\Git\bin\ssh.exe

Альтернативный путь: C:\Users\...\AppData\Local\Programs\Git\usr\bin\ssh.exe

прамодтех
источник
у меня это работает с черепахой версии 1.8.3 ... эта проблема сводила меня с ума !! на windowsXP @ 32 bit tortoisegit работает только с c: \ programmi \ git \ bin \ ssh.exe на Windows7 @ 64 он хорошо работает с toirtoiseplink.exe (по умолчанию)
Evilripper
На моем компьютере с Windows 8 указание SSH-клиента на файл msysGit ssh.exe работало, когда запрос пароля вообще не отображался. Другая проблема, но это решение определенно стоит попробовать тем, кто испытывает проблемы с ssh с TortoiseGit
Другая
1
Мне это не помогло (по крайней мере, при подключении к GitHub, другие репозитории не пробовал).
Suma
3
Спасибо, сработало отлично. Хотя моя ssh.exeложь в моем каталоге пользователейC:\Users\...\AppData\Local\Programs\Git\usr\bin
ppasler
7
Как упоминал @ppasler, ssh.exe теперь находится в C: \ Program Files (x86) \ Git \ usr \ bin \ ssh.exe или в указанном им месте, в зависимости от установки.
Влад Шнаковский
35

Если вам нужно использовать имя пользователя / пароль, есть гораздо более простое решение, чем текущий ответ №2:

Right-click --> Tortoise Git --> Settings --> Git --> Credential --> Choose "Wincred, all Windows users" --> Hit apply

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


Если вы используете репозиторий, для которого требуются ключи SSH, а не имя пользователя / пароль (что, похоже, было исходной проблемой OP) , вам необходимо

  1. Откройте ключ SSH в PuTTY gen (устанавливается вместе с Tortoise Git)
  2. В PuTTY gen сохраните ключ как ключ PuTTY.
  3. В репозитории Right-click --> Tortoise Git --> Settings --> Git --> Remotes. Найдите свой пульт (обычно origin), затем загрузите ключ PuTTY из шага 2.
BlueRaja - Дэнни Пфлугхофт
источник
В моем случае это работает только при использовании имени пользователя. Это не работает, когда вы вводите адрес электронной почты пользователя, так что имейте это в виду.
Razze
3
это был самый короткий и ясный ответ, спасибо.
Alphas Supremum
Давно искал точный ответ!
NielW 02
23

Сделать это без ключей ...

Щелкните правой кнопкой мыши свою папку.
Выберите tortoiseGit-> settings-> Git-> Remote
Select origin (или как вы назвали свой основной пульт)

Под URL используйте этот формат.

Https: // USERNAME: PASSWORD @ URL

Где USERNAME - ваше имя пользователя
: двоеточие разделяет имя пользователя и пароль и должно быть там.
PASSWORD - ваш пароль
@ разделяет учетные данные с вашим URL-
адресом. URL- адрес - это URL-адрес, который вы будете использовать для подключения к ресурсу .git.

Спасибо Kamaci.

Хью Фьюв
источник
3
Это решение также работает с ключом. Клон Https: // USERNAME @ URL и вы прекрасно.
Orace
2
Да, но не делайте этого, потому что, когда вы выполняете слияние, TortoiseGit склонен помещать весь URL-адрес в сообщение фиксации!
mwardm
Это идеальное решение. Но есть ли способ скрыть пароль, поскольку он в виде обычного текста.
Амит Кумар
1
Что делать, если пароль содержит знак @?
Хаммад Дар
Я прибег к использованию этого ответа, потому что у меня mingw64, и я получаю этот журнал: Пропуск командной строки '"C: \ Program Files \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe"' ('C: \ Program Files \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe 'не найден) Нужна действующая командная строка; Отредактируйте строковые ресурсы соответственно (3x) ошибка: не удалось выполнить сценарий приглашения (код выхода 1)
RW4,
14

Сохранение имени пользователя и пароля с помощью TortoiseGit

Сохранить данные для входа в TortoiseGit довольно просто. Избавляет от необходимости вводить свое имя пользователя и пароль каждый раз, когда вы нажимаете или выталкиваете.

  1. Создайте файл с именем _netrc со следующим содержимым:

    машина github.com
    логин ваш логин
    пароль ваш пароль

  2. Скопируйте файл в C: \ Users \ (или в другое место; это как раз то место, где я его положил)

  3. Перейдите в командную строку, введите setx home C: \ Users \

Примечание: если вы используете что-то более раннее, чем Windows 7, команда setx может не сработать. Вместо этого используйте set и добавьте переменную домашней среды в Windows с помощью дополнительных настроек в разделе «Мой компьютер».

КРЕДИТ НА: http://www.munsplace.com/blog/2012/07/27/saving-username-and-password-with-tortoisegit/

Энтони Кин
источник
1
это работает отлично, но есть ли способ зашифровать простой пароль? Мне было неудобно хранить пароль на github в виде простого текстового файла.
Dio Phung
@DioPhung Подумайте о том, что вы только что сказали. Если пароль зашифрован, теперь вам нужно запомнить (новый) пароль для использования пароля. Если вам не нужно запоминать пароль, то это равносильно его отсутствию (с точки зрения локальной угрозы). Либо вы хотите удобства, либо безопасности.
Камило Мартин
1
@DioPhung Если вы боитесь местных администраторов, они могут легко установить кейлоггер. Локальный администратор может делать с вашими данными все, что он / она хочет, и поэтому любая защита от них будет защитой через неясность (даже инструменты и уловки, которые используют банки, не могут защитить вас от знающего и решительного местного администратора, и они очень стараюсь). Что вы имеете в виду по поводу хеша? Хеш необратим. И если вы шифруете с помощью самого пароля, вам все равно нужно вводить его каждый раз ... Так что это то же самое, что и не шифровать его в первую очередь.
Камило Мартин,
1
@CamiloMartin шифрование не требует пароля; существует множество способов аутентификации в системе, которые могут быть более удобными, чем пароль. Безопасность - это еще не все или ничего.
adam
1
Хотя это решение возможно, лучше хранить пароль в Windows PasswordVault . Эта возможность была доступна в TortoiseGit с марта 2013 года путем реализации API git-credential-store . Вероятно, это тоже проще: From within repo → Context-click → TortoiseGit → Settings → Git → Credential → wincred → OKи все готово. Я написал для интересующихся полный ответ на этот вопрос.
adam
5

Один из способов сделать это

  • сгенерируйте пару ключей с помощью PuttyGen (или импортируйте в .ppk, если у вас уже есть ключ)
  • загрузить закрытый ключ в peagent
  • импортировать открытый ключ на ваш сервер gitosis (предоставьте свой открытый ключ своему администратору)
  • а затем используйте plink в качестве клиента SSH

Plink изначально работает с peagent для получения загруженного ключа.

вы можете найти plink.exe вместе с peagent и другими полезностями в стандартном дистрибутиве putty

чтобы использовать его, перейдите по ссылке:

Настройки TortoiseGit -> Сеть -> SSH-клиент.

по умолчанию он содержит путь к TortoisePlink.exe, а не путь к plink.exe

В качестве альтернативы вы можете использовать ssh (.exe) в дистрибутиве msys (git), но тогда вы не можете использовать закрытый ключ в комбинации формата .ppk / Peagent. Вам нужно либо экспортировать свой ключ в формат OpenSSH через PuttyGen, либо вместо этого создать пару ключей, используя ssh-keygen.

mzzzzb
источник
Что вы имеете в виду под «SSH-клиентом вместо точки TortoisePlink для подключения»? Где, вероятно, находится эта программа SSH?
Микаэль Майер
извините за отсутствие знаков препинания, я думаю, это источник путаницы. Я обновил ответ
mzzzzb
Не нужно ничего менять в настройках. Просто предоставьте закрытый ключ Putty при клонировании репо через SSH, и все готово. Не забудьте ввести конечную точку SSH в окне клонирования, а НЕ https.
MoonStom
4

Чтобы автоматизировать аутентификацию, используйте:

  1. SSH-ключи, как уже указывали другие, или
  2. встроенный помощник по учетным данным.

Очевидно, не храните свой пароль в текстовом файле, если репо не имеет значения.

TortoiseGit> 1.8.1 устанавливает помощник git-credential-winstore который предоставляет локальный API для доступа и хранения вашей информации для входа в существующее локальное хранилище учетных данных Windows .

Вы можете увидеть сохраненные учетные данные, перейдя в Панель управления → Учетные записи пользователей → Диспетчер учетных данных и выбрав «Учетные данные Windows». Записи, начинающиеся с «git:», взяты из git-credential-winstore.

Вы можете настроить wincred для каждого репозитория:

(GUI)

  1. Перейдите в репозиторий в проводнике.
  2. Контекстный щелчок → TortoiseGit → Настройки → Git → Учетные данные
  3. Credential helper: wincred - только в этом репозитории
  4. В следующий раз, когда вы аутентифицируетесь в репо, учетные данные будут сохранены.

(CLI, POSH)

  1. cmdkey /add:git:https://USERNAME@github.com /user:USERNAME /pass:PASSWORD
  2.  

    @"
    [credential]
            helper = wincred
    "@ | Out-File -FilePath $repoRoot\.git\config -Append
    

Вы можете перечислить все учетные данные, хранящиеся для репозиториев, с помощью команды cmdkey /list:git:*
После сохранения пароли не отображаются с помощью cmdkey ( http://ss64.com/nt/cmdkey.html )

Чтобы перечислить все учетные данные с паролями, вам необходимо использовать Windows API . Для powershell есть CredMan :

. .\CredMan.ps1
.\CredMan.ps1 -ShoCred
Адам
источник
4

Я была такая же проблема. Моя среда - это Windows 10 с TortoiseGit 2.3.0.0 и git версии 2.11.0.windows.1

Следующее решило мою проблему:

  • Щелкните правой кнопкой мыши -> TortoiseGit -> Настройки -> Сеть
  • Обновите клиент SSH до C: \ Program Files \ Git \ usr \ bin \ ssh.exe

введите описание изображения здесь

Серебряный
источник
3

URL-адрес и заголовок окна TortoisePlink указывают на то, что черепаха пытается использовать ssh в качестве транспортного протокола. git поддерживает более одного транспортного протокола, включая доступ к файловой системе и доступ по ssh. В своем вопросе вы описываете, что хотите получить доступ к своему удаленному репо через доступ к файловой системе. В этом случае ваш удаленный URL-адрес должен выглядеть примерно так file://server/path/to/repo. Пожалуйста, проверьте URL вашего удаленного репо еще раз.

Дов Гробгельд
источник
3

Что я сделал, чтобы исправить это (окна):

  1. Откройте PuttyGen, импортируйте мой ключ ssh и преобразуйте его в ключ шпатлевки, сохраните как общедоступные, так и частные части в папке .ssh (% userprofile% .ssh)
  2. Откройте Putty и перейдите в Connection-> SSH-> Auth, затем установите там свой файл закрытого ключа.
  3. Вернитесь в Сессию, выберите Настройки по умолчанию и нажмите Сохранить.
  4. Теперь попробуйте клонировать снова, и вам будет предложено ввести кодовую фразу для вашего ключа ssh, введите ее, и она должна работать.
Razze
источник
2

Ответ Pramodtech перестал работать для меня с текущей версией официального клиента Windows Git. Он хранит исполняемый файл ssh Git\usr\binвместо Git\binnow (начиная с версии 2.5, выпущенной в августе 2015 года).

Итак, перейдите TortoiseGit > Settings > Networkи измените путь клиента SSH на:

C:\Program Files\Git\usr\bin\ssh.exe (или любой другой путь к вашей установке Git)

введите описание изображения здесь

DerVO
источник
1

К сожалению, на моей машине с Windows 8 решение с перенаправлением клиента SSH не сработало. Решение, которое решило проблему для меня, находится здесь: http://www.munsplace.com/blog/2012/07/27/saving-username-and-password-with-tortoisegit/

Евгений Сафронов
источник
Пожалуйста, просто не размещайте
icc97
Это тот же ответ, который дал выше Энтони Кин.
rakensi
1

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

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

Итак, как решить проблему и как определить, действительно ли у вас такая же проблема, как у меня:

  1. Загрузите plink.exeна свой компьютер отсюда
  2. Откройте командную строку Windows в том же каталоге, в который вы загрузили plink.exe
  3. Выполните эту команду: plink -v <path_to_your_git_clone_repo_link>
  4. Посмотрите на вывод и посмотрите, есть ли у вас строка вроде Reading private key file "C:\Path\To\Some\privateKey.ppk"
  5. Если вы видите такую ​​строку, и это не ключевой файл, который вы хотите использовать, просто перейдите и переименуйте / удалите / переместите этот файл, чтобы plink не смог загрузить его в следующий раз
  6. После того, как вы переименовали проблемный файл, все должно работать, как ожидалось, если вы запустите команду из пункта 3. вы должны увидеть, что теперь plink не может загрузить этот ppkфайл, и после этого он должен вывести что-то вроде, Pageant is running. Requesting keys.и мы действительно хотели это

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

сбгоран
источник
1

Пожалуйста, не URL-адрес удаленного источника репо может вызвать эту проблему. У меня было старое репо, которое отлично работало, а новое, которое я только что клонировал, запрашивало у меня пароль.

Сравнив информацию, Settings > Git > Remote > Urlя увидел, что тот, который работал, имел:

git@github.com:githubAccount/repoName.git

Новый, который не работал, имел https адрес.

См. Также снимок экрана ниже.

введите описание изображения здесь

Оптимальный прайм
источник
1

Командная строка Tortoise GIT DOS перестала запрашивать мой пароль после того, как я поместил свой закрытый и открытый ключи в каталог C: \ Users \ .ssh. У меня Windows 7.

СунилДж
источник
1

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

Отъезд: Конфигурация TortoiseGIT SSH . Эти инструкции предназначены для Cloudforge, но для других сервисов вы должны сделать то же самое, просто предоставьте свой открытый ключ поставщику репозитория git.

Krzysiek
источник
1

Сегодня я столкнулся с аналогичной проблемой и смог исправить ее, установив последнюю версию git с https://git-scm.com/download/win.

Эрик Лэнгфорд Ксенес
источник