Git производит Gtk-WARNING: не открывается экран

Я работаю над своим проектом удаленно через командную строку на машине, на которой у меня нет прав администратора, и после запуска 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 и попытке нажать, я получаю следующую ошибку:

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

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

Ответ 1

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

  unset SSH_ASKPASS

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

Ответ 2

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

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

Примечание. Из приведенных выше решений я фактически не пытался обновить до 1,8 ветки git