Подтвердить что ты не робот

С помощью клиента git на автономном сервере linux

Как заставить git -клиент использовать только консоль/терминал. Когда я подключу ssh к удаленному/безголовому компьютеру Linux и попробую запустить:

git clone https://[email protected]/xxx/xxx.git

git жалуется и дает мне эту ошибку: (gnome-ssh-askpass: 2769): Gtk-WARNING **: не открывается экран:

Я не хочу использовать графический интерфейс или ssh -X. Я просто хочу настроить git -client только для использования терминала.

Im, использующий CentOs и получивший git -клиент с yum install git.

4b9b3361

Ответ 1

Вы можете отключить gnome-ssh-askpass в текущем сеансе, отключив переменную среды SSH_ASKPASS:

unset SSH_ASKPASS

Возможно, вы можете добавить его в свои .bashrc или .profile с условной проверкой, зарегистрирован ли пользователь в SSH. Что-то вроде:

[ -n "$SSH_CONNECTION" ] && unset SSH_ASKPASS

BTW, кто-то еще также жаловался на поведение git вызова программы SSH_ASKPASS вслепую, не определяя, является ли это сеансом GUI или не. Если вы прочитаете полный поток, это объяснит, что использовать эту переменную DISPLAY невозможно, чтобы обнаружить это. Также не упоминается, был ли этот патч принят или нет.

Ответ 2

Основываясь на ответе Тобу, я закончил с этим в своем ~/.bashrc - я думаю, вы захотите его в ~/.bash_profile, если вы используете git из сеанса ssh:

export GIT_ASKPASS=

который, кажется, предотвращает раздражающий диалог gnome-ssh-askpass, используя приглашение пароля CLI.

Отмена SSH_ASKPASS, который является советом, который кажется наиболее распространенным, предположительно может иметь некоторые непреднамеренные побочные эффекты.

Ответ 3

Вам нужно изменить команду ssh-askpass на то, что не использует пользовательский интерфейс (atm это gnome-ssh-askpass, как видно из сообщения об ошибке).

Ответ 4

Экспорт

GIT_ASKPASS=true

отключит любое приглашение.

Начиная с Git 2.3, вы можете использовать

GIT_TERMINAL_PROMPT=0

или напишите короткий script, который делает echo quit=1 и использует его для core.askpass.