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.

В моем случае это работает только при использовании имени пользователя. Это не работает, когда вы вводите адрес электронной почты пользователя, так что имейте это в виду.
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.


Что вы имеете в виду под «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, введите ее, и она должна работать.

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)

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


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.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.