자식이 Gtk 경고를 생성합니다 : 디스플레이를 열 수 없습니다


138

관리자 권한이없는 컴퓨터의 명령 줄을 통해 프로젝트에서 원격으로 작업하고 있으며 실행 후 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://username@github.com/username/repository.git 
    [branch "master"]
       remote = origin
       merge = refs/heads/master

이전에 403 오류가 발생했습니다. here 코멘트 에 따라 원격 URL의 @ 기호 앞에 사용자 이름을 넣은 후 Gtk 오류가 발생했습니다.

사용하여 컴퓨터에 로그인하고 ssh -X푸시하려고하면 다음 오류가 발생합니다.

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

리모컨의 URL을로 변경 git@github.com:username/repository.git하면 오류는 다음과 같습니다.

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

이 문제를 해결하는 방법을 알고 있습니까?


2
ssh를 사용하고 있다고 생각합니다. 대신 ssh -X를 사용하십시오. 이것은 암호 대화 상자가 열려고하지만 X가 없기 때문에 열 수 없다는 것을 의미합니다.
positron

고맙지 만 ssh를 명시 적으로 사용하지 않고을 호출 git push origin master하기 때문에 귀하가 말하는 것을 적용하는 방법을 모르겠습니다.
John Manak

서버로 어디로 밀고 있는지 알 수 있습니까? 나는 어떤 기계를 의미합니까? 그 기계에 어떻게 로그인 했습니까?
양전자

1
죄송합니다. 죄송합니다. 귀하의 질문을 완전히 읽지 못했습니다. 당신의 "URL이"이어야한다 git@github.com:username/repo.git또는 https://github.com/username/repo.git그러나 당신은 둘의 혼합을 사용하고 있습니다.
양전자

죄송합니다, 지금 무슨 말씀인지 알겠습니다. 을 사용하여 컴퓨터에 로그인을 시도했지만 ssh -X도움이되지 않았습니다. 위의 업데이트 된 질문을 참조하십시오.
John Manak

답변:


336

마침내 문제에 대한 해결책을 찾았습니다. 여기 에 설명 된 것처럼 터미널에서 다음 명령을 실행했습니다.

  unset SSH_ASKPASS

그런 다음 달리는 git push origin master방식대로 작동합니다. .bashrc파일에 줄을 추가 할 수도 있습니다 .


5
고마워 ... 많은 시간을 절약했습니다. 축복합니다
Poonam Bhatt

고마워요! :-)
ItayB

1
고마워 .. 그것은 나를 위해 일했다! bitbucket에서 Linux 시스템으로 복제하려고 할 때 비슷한 오류가 발생했습니다.
Blesson Jose

2
CentOS 6.7 시스템에서이 변수를 설정하는 스크립트라는 것을 추가하고 싶었습니다. /etc/profile.d/gnome-ssh-askpass.sh
hshib

지금 나는error: RPC failed; result=22, HTTP code = 417
pmiranda

19

최근에 Git 버전이 1.7.4.1 인 RedHat 5 시스템에서이 동작을 처리했습니다.

나는 unset SSH_ASKPASS의도하지 않은 결과를 초래하지 않을 정도로 자신감이 높지 않았으므로 다른 해결책이 있는지 확인하고 싶었습니다.

나는 확실히 말할 수 없었지만, 이 문제에 대한 패치 는 Git 버전이 게시 된 시점과 거의 비슷한 작품 에 있었던 것 같습니다. 따라서 최신 버전이 문제를 해결하기를 희망하는 것이 합리적이었습니다.

그리고 실제로 그랬습니다. Git의 1.8 지점으로 업그레이드하면 문제가 해결되었습니다. 오류 메시지가 이상한 이유로 계속 표시되지만 비밀번호를 올바르게 입력하라는 메시지가 표시되며 계속 진행할 수 있습니다.


2
RHEL 5 (CentOS 5 등)의 문제점은 /etc/profile.d/gnome-ssh-askpass.sh(openshsh-askpass 패키지 소유) 파일에 있습니다. 여기서 SSH_ASKPASS 환경 변수는 / usr / libexec / openssh로 설정됩니다. / gnome-ssh-askpass이며 X가 없으면 (즉, PuTTY over SSH를 통해 로그인 한 경우) 작동하지 않습니다. 이 파일의 행을 주석 처리하면됩니다 (파일을 삭제하지 마십시오. 그렇지 않으면 openssh-askpass 패키지를 업데이트 한 후 복구됩니다). 또는 openssh-askpass 패키지를 완전히 제거하십시오 (yum remove openssh-askpass).
Milan Kerslager

0

이 답변 중 어느 것도 나를 위해 일하지 않았습니다 (Windows 10의 Cygwin을 통해 RHEL 6.8 서버로 ssh하고 RHEL 상자에서 github.com 저장소를 복제하려고 시도) 암호. 예를 들어 https URL 대신 git@github.com : MyUsername / myproject.git을 사용했습니다. 또한 공개 키를 Github에 적절하게 업로드했습니다. 이 방법은 잘 작동했습니다.

참고 : 위의 솔루션 중 실제로 1.8 git 지점으로 업그레이드하지 않았습니다.


0

대화 상자가 그래픽으로 표시되도록 ssh -Y를 사용하여 원격 서버에 로그인 할 수도 있습니다.

OP와 마찬가지로 ssh -X를 통한 로그인이 작동하지 않았습니다. 푸시하려고 할 때 서버는 (gnome-ssh-askpass:29241): Gtk-WARNING **: cannot open display:X11 전달없이 ssh를 통해 로깅 할 때 와 동일한 오류 메시지를 반복했습니다 . 이것은 오류 메시지가 ssh를 사용하는 것에서 약간 변경되어 OP가 ssh -X를 시도했을 때 OP와보고 한 동작과 약간 다릅니다.

그러나 나를 위해 한 번 ssh -Y를 사용하여 로그인했습니다. 오류가없고 암호 대화 상자가 나타 났으며 암호를 입력했으며 GitHub가 푸시를 수락했습니다.

예를 들어, ssh -Y는 원격 서버를 신뢰할 수있는 클라이언트로 취급 할 때 보안 문제를 일으킬 수 있습니다 ( /ubuntu/35512/what-is-the-difference-between-ssh-y- trusted-x11-forwarding-and-ssh-xu ). 사용시주의하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.