сделать git запрос пароля в терминале - PullRequest
8 голосов
/ 16 марта 2012

Я использую git для одного из моих проектов.Всякий раз, когда я пытаюсь перейти к удаленному репо, git запрашивает у меня пароль с помощью окна X, поэтому, если я пытаюсь подключиться к компьютеру через ssh и нажать push, мне также нужно нажать X вперед, чтобы окно появилось на моем экране.* Можно ли заставить git запрашивать пароль в самом терминале?

Ответы [ 2 ]

5 голосов
/ 30 августа 2013

@ Screwtape является (по крайней мере, частично) правильным, в его ответ . Если вы посмотрите на эту страницу , она показывает ту же проблему (среди более серьезных проблем), но также показывает, как обойти эту ошибку.

Пока вы подключаетесь по SSH к компьютеру, на котором вы хотите запустить команду git, попробуйте:

$ unset SSH_ASKPASS

Это отменяет переменную окружения $ SSH_ASKPASS. Если вы затем запустите команду git, которую хотите запустить, она должна работать. Это работает в моем терминале замазки Windows, в котором я SSH'ing к серверу CentOS. Обратите внимание, что это неустановленное изменение НЕ постоянное (возможно, это хорошо), и вам необходимо повторно сбросить этот параметр при следующем входе в систему, но он выполнит свою работу, если вы хотите запустить GIT-сценарии.

Почему эта ошибка все еще существует, несмотря на то, что о ней сообщалось более двух лет назад? Из этого источника кажется, что Windows никогда не устанавливает переменную окружения DISPLAY, и поэтому GIT не будет работать должным образом, если она выполнит эту проверку. Поэтому функциональность не учитывается (по-видимому), а цитата, оставленная @Screwtape, правильно скопирована, но в действительности не применяется.

2 голосов
/ 10 января 2013

Это не поведение мерзавца; вы продвигаетесь к репо через SSH, и SSH запрашивает ваш пароль. Страница руководства ssh гласит:

Если ssh не имеет связанного с ним терминала, но установлены DISPLAY и SSH_ASKPASS, он выполнит программу, указанную SSH_ASKPASS, и откроет окно X11 для чтения парольной фразы.

Обычно, когда вы используете ssh на удаленном хосте, ssh очищает переменную DISPLAY, чтобы предотвратить именно такие проблемы, но возможно, вы настроили ssh для распространения большего количества переменных среды, чем позволяет конфигурация по умолчанию. В этом случае убедитесь, что ssh не копирует переменную DISPLAY на удаленный хост (если вам нужна пересылка X11, ssh создаст свою собственную новую переменную DISPLAY, которая не требует вашей исходной переменной). Это должно препятствовать запуску ssh-askpass на сервере, на котором вы запускаете git.

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