[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://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

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



답변

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

  unset SSH_ASKPASS

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


답변

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

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

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

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


답변

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

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


답변

대화 상자가 그래픽으로 표시되도록 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 ). 사용시주의하십시오.


답변