it-roy-ru.com

Git производит Gtk-ПРЕДУПРЕЖДЕНИЕ: не может открыть дисплей

Я работал над своим проектом удаленно через командную строку на компьютере, на который у меня нет прав администратора, и после запуска git Push Origin master я получаю следующее сообщение об ошибке:

(gnome-ssh-askpass:29241): Gtk-WARNING **: cannot open display:

Мой файл .git/config имеет следующее содержимое:

    [core]
       repositoryformatversion = 0
       filemode = true
       bare = false
       logallrefupdates = true 
    [remote "Origin"]
       fetch = +refs/heads/*:refs/remotes/Origin/*
       url = https://[email protected]/username/repository.git 
    [branch "master"]
       remote = Origin
       merge = refs/heads/master

Я получал ошибку 403 ранее. После комментария здесь я поставил свое имя пользователя перед знаком @ в удаленном URL-адресе, и с тех пор я получаю ошибку Gtk.

Когда я захожу на компьютер с помощью ssh -X и пытаюсь нажать Push, я получаю следующую ошибку:

X11 connection rejected because of wrong authentication.
(gnome-ssh-askpass:31922): Gtk-WARNING **: cannot open display:localhost:10.0

Если я изменю URL удаленного на [email protected]:username/repository.git, то ошибка будет:

ssh: connect to Host github.com port 22: Connection timed out
fatal: The remote end hung up unexpectedly

Вы знаете, как это исправить?

128
John Manak

Я наконец-то нашел решение проблемы. Как было описано здесь , я запустил в терминале следующую команду:

  unset SSH_ASKPASS

а затем запуск git Push Origin master работает так, как должен. Вы также можете добавить строку в свой файл .bashrc.

321
John Manak

Я недавно имел дело с этим поведением на машине RedHat 5, где наша версия Git была 1.7.4.1.

У меня не было высокой степени уверенности в том, что unset SSH_ASKPASS не будет иметь непредвиденных последствий, поэтому я хотел посмотреть, есть ли другое решение.

Я не могу сказать наверняка, но кажется, что патч для этой проблемы был в разработке примерно в то же время, когда была опубликована наша версия Git. Таким образом, мне казалось, что было бы разумно надеяться, что более новая версия исправит поведение.

И это действительно так. Обновление до ветки 1.8 Git решило проблему. Сообщение об ошибке по-прежнему отображается по какой-то странной причине, но вы правильно запросили свой пароль и разрешили продолжать.

19
eikonomega

Вы также можете попытаться войти с помощью ssh -Y на удаленный сервер, чтобы диалоговое окно могло отображаться графически.

Как и OP, вход в систему через ssh -X не работал. При попытке Push сервер просто повторил то же сообщение об ошибке - (gnome-ssh-askpass:29241): Gtk-WARNING **: cannot open display:, что и при входе через ssh без пересылки X11. Это поведение немного отличается от того, что сообщал OP, когда он пытался использовать ssh -X, поскольку его сообщение об ошибке немного изменилось по сравнению с использованием ssh.

Тем не менее, для меня, однажды войдя в систему с помощью ssh -Y: ошибки не было, всплыло диалоговое окно ввода пароля, я ввел пароль, и GitHub принял Push.

Как предупреждение, ssh -Y может открыть проблемы безопасности, когда вы рассматриваете удаленный сервер как доверенного клиента ( https://askubuntu.com/questions/35512/what-is-the-difference-between- SSH-у-доверенный-x11-экспедиторская-и-SSH-X ). Так что будьте осторожны при его использовании.

0
cr_dave

Ни один из этих ответов не работал для меня (ssh'ing через Cygwin под Windows 10 на сервер RHEL 6.8 и попытка клонировать репозиторий github.com из коробки RHEL), так что я сделал клонирование через ключ SSH, а не по имени пользователя HTTPS/пароль. например Я использовал [email protected]: MyUsername/myproject.git, а не https URL. Я также соответствующим образом загрузил свой открытый ключ в Github. Этот метод работал нормально.

Примечание: из вышеперечисленных решений я фактически не пробовал обновиться до ветки 1.8 git

0
johnsimer