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