Каждый раз, когда я пытаюсь выполнить git push или pull на одном из наших рабочих серверов, я получаю предупреждение «Ошибка: не могу открыть дисплей:», если я не захожу с переадресацией -X, и в этом случае появляется какое-то уродливое окно 90-х годов мне ввести свой пароль.

Есть ли какие-либо настройки для подавления этого поведения? Я в полном замешательстве и ничего не могу найти в Google ...

Редактировать: окно, которое появляется, когда включена переадресация X, показано ниже:

2 ответа2

3

Вы можете установить желаемую команду askpass, используя git config . Соответствующий ключ конфигурации называется core.askpass .

Чтобы изменить его: git config --global core.askpass /path/to/command

Значение, установленное в вашей конфигурации Git, может быть переопределено с помощью переменной среды GIT_ASKPASS .

Если core.askpass не установлен, он сначала пытается выполнить команду, определенную в переменной среды SSH_ASKPASS . Следующим (и последним) в резервном порядке является простая встроенная подсказка пароля.

Источник и подробности: git-config Documentation (поиск по core.askpass)

2

Похоже, вы используете программу pinentry для ввода пароля для входа в git, из которых существует несколько вариантов. В вашем случае выбранное значение по умолчанию выглядит как pinentry-gtk2, что действительно ужасно чертовски. :)

Испытай свою удачу с

ls -l /usr/bin/pinentry*

чтобы увидеть, какие варианты установлены. Скорее всего, будет один из двоичных символов, который является "по умолчанию". Вы можете выбрать другую программу pinentry, перекомпоновав символическую ссылку, хотя это может запутать ваш менеджер пакетов. Просто чтобы увидеть, является ли это реальной проблемой, удалите символьную ссылку /usr /bin /pinentry или переместите ее в pinentry-curses, чтобы увидеть, не меняется ли поведение.

Самое смешное, что я не помню, чтобы git использовал программу pinentry, но gnupg знает. Может быть, у вас есть некоторые настройки, включающие gpg-agent, ключи SSH и GnuPG, запрашивающие фразу-пароль через pinentry?

Если у вас нет привилегий для прямого взаимодействия с символической ссылкой, вы можете попробовать отредактировать конфигурацию gpg-agent:

mkdir -p ~/.gnupg   # may fail if dir already exists
echo 'pinentry-program /usr/bin/pinentry-curses' >> ~/.gnupg/gpg-agent.conf

Это должно дать команду gpg-agent вместо этого использовать программу pinentry-curses на основе cli. Это длинный выстрел, но стоит попробовать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .