С помощью клиента 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.
Ответы
Ответ 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
.