Избегайте всплывающего окна с запросом имени пользователя при выполнении git push

На моем компьютере с Windows установлены Cygwin, msysgit и TortoiseGit. Я пишу скрипт для Cygwin, который выполняет git push на удаленную машину через ssh:

git push ssh://host/path/to/git master:master

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

  1. Этот пользователь аутентифицируется с помощью пары ключей, поэтому у него нет пароля. Всплывающее окно не позволяет мне указать закрытый ключ.
  2. Причина, по которой я пишу сценарий, заключается в том, чтобы избежать повторного написания обыденных вещей, таких как имя пользователя и местоположение закрытого ключа, поэтому я хотел бы иметь возможность передавать имя пользователя и путь к файлу закрытого ключа в командную строку ( или, может быть, файл конфигурации).

Вы знаете, как это сделать?


person Flavien    schedule 20.08.2012    source источник


Ответы (2)


При использовании компьютера с Windows я использую pageant, чтобы установить закрытый ключ и автоматически предоставить его запрашивающим приложениям.

Поэтому я должен давать пароль закрытого ключа (для конкурса) только один раз за сеанс, а не при каждой необходимости. Поскольку pageant является агентом аутентификации, он работает для всех программ, выполняющих ssh-подключения (я протестировал его с помощью msysgit без проблем).

См. : http://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter9.html

person Denys Séguret    schedule 20.08.2012

Попробуйте использовать:

ssh://username@host/path/to/git

Это позволит избежать всплывающего окна с запросом имени пользователя. Если у вас правильно настроены ключи в папке .ssh, аутентификация тоже должна работать.

person Marcin Koziński    schedule 20.08.2012
comment
На самом деле, я могу подтвердить, что это не так, по крайней мере, с помощью msysgit. Указание имени пользователя в пульте не позволяет избежать надоедливого всплывающего окна. - person Kris Craig; 13.02.2021