Как мне сохранить пароль для моего ключа, чтобы я мог фиксировать и извлекать из репозитория при использовании git на windows? - PullRequest
17 голосов
/ 02 сентября 2010

Может ли кто-нибудь указать мне направление, в котором мне нужно посмотреть, чтобы я мог настроить свой клиент GIT с паролем, необходимым для моего закрытого ключа? Каждый раз, когда я нажимаю и извлекаю из своего хранилища, он запрашивает пароль для моего ключа. Я использую командную строку, и у меня установлен Windows GIT клиент для использования SSH.

Спасибо за любые указатели.

Ответы [ 4 ]

24 голосов
/ 16 ноября 2011

У меня просто была эта проблема здесь. Мое локальное дерево git было повреждено, поэтому я удалил его и снова клонировал проект из github. После этого он начал спрашивать мой пароль при каждом нажатии или нажатии. Через некоторое время я понял, что клонировал проект с HTTP-URL (https://my_user@github.com/user/project.git). Когда я снова клонировал с использованием SSH URL (git@github.com: user / project.git), он перестал запрашивать пароль.

16 голосов
/ 02 сентября 2010

Вы уверены, что клонируете по SSH?

Запустите git remote -v.Вывод ниже - из репозитория, который клонирует через HTTPS: обратите внимание на схему URL https://.

origin  https://github.com/git/git.git (fetch)
origin  https://github.com/git/git.git (push)

Клоны URL для SSH будут иметь одну из двух форм:

  • username@host.domain.tld:foo/bar/baz.git
  • ssh://username@host.domain.tld/foo/bar/baz.git

Предполагая, что ваш хост поддерживает как SSH, так и HTTPS (как это делают GitHub, GitLab и Gitorious), затем просто измените URL-адрес пульта, а не перенастраивайте весьhistory.

git remote set-url origin git@host.domain.com:foo/bar/baz.git

У разных хостов будут разные дизайны URL.Например, переключите приведенный выше URL-адрес GitHub с HTTPS на SSH с помощью

git remote set-url git@github.com:git/git.git

GitHub имеет соответствующее руководство для изменения URL-адреса удаленного git .

Windows

В Windows типичная установка использует PuTTY в качестве клиента SSH, что означает, что вы захотите запустить Pageant , агент PuTTY SSH.В Windows я запускаю быстрое пакетное задание из группы автозагрузки:

@echo off
start /b "C:\Program Files\PuTTY\pageant.exe" "C:\Users\Greg\Greg.ppk"

, где Greg.ppk - это ключ, который я создал с помощью PuTTYgen .

Oneдальнейший шаг: попросите git использовать plink , клиент PuTTY для неинтерактивных соединений.Задайте для переменной среды GIT_SSH значение

C:\Program Files\PuTTY\plink.exe

, предполагая, что именно здесь живет PuTTY.

Unix, Linux, Cygwin, Git Bash

На Unix-подобных платформахисправить это просто.Если ssh-agent не запущен, запустите его, например,

$ eval `ssh-agent`

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

$ ssh-add

Если у вас есть идентификатор в другом месте, запустите

$ ssh-add /path/to/other/ssh_id

Если у вас все еще есть проблемы, у GitHub есть страница для устранения проблем с GitHub и SSH , но, пожалуйста, также обновите ваш вопрос, чтобы мы могли сделать этот ресурс более полезным.

Недостаток SSH-ключа без пароля

Может показаться заманчивым создать и зарегистрировать SSH-ключ без пароля или парольной фразы, поскольку вам не будет предложено ввести его для каждого git clone,git fetch, git pull или git push.Однако без ключевой фразы ваш SSH-ключ не зашифрован.Это означает, что любой, кто может получить копию вашего личного ключа (файл с именем id_rsa, id_dsa, id_ecdsa - без расширения .pub), может выдать себя за вас без каких-либо усилий.

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

Если вы уже настроили ключ без пароля, зашифруйте его, запустив

ssh-keygen -p

Вы увидите подсказки для файла ключа (со значением по умолчанию), для вашей новой парольной фразы и еще раз, чтобы подтвердить, что вы правильно ввели свою парольную фразу.

8 голосов
/ 02 сентября 2010

Вы должны воссоздать ваш ssh-ключ по умолчанию и использовать пустую фразу-пароль.Затем снова загрузите публичную часть на git-сервер.

Без конкретных продуктов, которые вы используете на клиенте и сервере, немного сложнее быть более конкретным.

Альтернативой является использование ssh-agent, но я понятия не имею, работает ли это на Windows или что-то подобное доступно.

4 голосов
/ 03 сентября 2010

Волшебные слова, которые вы ищете: " ssh-agent " , это способ автоматического ввода ключевой фразы для ключа ssh.

В этой статье из Github рассказывается, как запустить ssh-agent с помощью клиента msysgit для Windows.

Git на Windows - сложный опыт. Вы проведете свои дни, бродя по Интернету и находя статьи, в которых игриво предлагается серия нажатий клавиш, которые работают только в Unix должным образом.

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

Как говорится, вот несколько полезных ссылок:

GitHub's Установка Git в Windows series GitHub's Создание ключей SSH в Windows И некоторые общие замечания о парольных фразах

Если вы не можете найти то, что ищете в Windows, всегда сначала проверяйте документы Github. Насколько я могу судить, это единственные руководства Windows, на которые стоит наплевать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...