git Gtk üretir-UYARI: ekranı açamıyor


138

Projem üzerinde yönetici haklarına sahip olmadığım bir makinedeki komut satırı üzerinden uzaktan çalışıyorum ve çalıştırdıktan sonra git push origin masteraşağıdaki hata mesajını alıyorum:

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

Dosyam .git/configaşağıdaki içeriğe sahip:

    [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

Daha önce 403 hatası alıyordum. Buradaki yorumdan sonra, kullanıcı adımı uzak url'deki @ işaretinden önce koydum ve o zamandan beri Gtk hatası alıyorum.

Kullanarak makineye giriş yaptığımda ssh -Xve itmeye çalıştığımda, aşağıdaki hatayı alıyorum:

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

Uzaktan kumandanın URL'sini olarak değiştirirsem git@github.com:username/repository.githata şu olur:

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

Bunu nasıl düzeltebileceğinizi biliyor musunuz?


2
Sanırım ssh kullanıyorsun. Bunun yerine ssh -X kullanın. Bu, bir şifre iletişim kutusunun açılmaya çalışıldığı anlamına gelir, ancak X olmadığı için açılamadı.
positron

Teşekkürler, ama ssh'yi açıkça kullanmıyorum, sadece arıyorum git push origin master, bu yüzden söylediklerinizi nasıl uygulayacağımı bilmiyorum?
John Manak

Sunucuya nereye ittiğinizi öğrenebilir miyim? Hangi makineden yani? Bu makineye nasıl giriş yaptınız?
positron

1
Hata. Afedersiniz. Sorunuzu tam olarak okumadım. Sizin "url" ya olmalı git@github.com:username/repo.gitya https://github.com/username/repo.gitAma ikisinin bir karışımını kullanıyor.
positron

Üzgünüm, şimdi ne demek istediğini anlıyorum. Kullanarak makineye giriş yapmayı denedim ssh -X, ama bu da yardımcı olmadı. Yukarıdaki güncellenmiş soruya bakın.
John Manak

Yanıtlar:


336

Sonunda soruna bir çözüm buldum. O tarif edildiği gibi burada , ben terminalde aşağıdaki komutu çalıştırılmadan:

  unset SSH_ASKPASS

ve sonra koşmak git push origin mastergerektiği gibi çalışır. Satırı .bashrcdosyanıza da ekleyebilirsiniz .


5
Teşekkürler ... bu çok zaman kazandırdı. Korusun
Poonam Bhatt

Bunun için teşekkürler! :-)
ItayB

1
Teşekkürler .. Bu benim için çalıştı! Bitbucket'ten linux makinesine klonlamaya çalışırken benzer bir hata alıyordum.
Blesson Jose

2
Sadece CentOS 6.7 sistemimde bu değişkeni ayarlayan bu komut dosyası olduğunu eklemek istedim: /etc/profile.d/gnome-ssh-askpass.sh
hshib

Şimdi alıyorumerror: RPC failed; result=22, HTTP code = 417
pmiranda

19

Geçenlerde Git sürümümüzün 1.7.4.1 olduğu bir RedHat 5 makinesinde bu davranışla başa çıktım.

unset SSH_ASKPASSİstenmeyen sonuçları olmayacak yüksek derecede güvenim yoktu , bu yüzden başka bir çözüm olup olmadığını görmek istedim.

Kesin olarak söyleyemedim, ama öyle görünüyor ki bu sorun için yama , Git versiyonumuzun yayınlanmış olduğu çalışmalardaydı. Bu yüzden bana, daha yeni bir sürümün davranışı düzelteceğini ummanın mantıklı olduğu anlaşıldı.

Ve gerçekten de öyle. Git'in 1.8 şubesine yükseltme sorunu çözdü. Hata mesajı hala bazı tuhaf nedenlerle görüntüleniyor, ancak parolanızı doğru şekilde girmeniz isteniyor ve devam etmenize izin veriliyor.


2
RHEL 5'teki (CentOS 5 vb.) Sorun, SSH_ASKPASS ortam değişkeninin / usr / libexec / openssh olarak blindy olarak ayarlandığı /etc/profile.d/gnome-ssh-askpass.sh (openssh-askpass paketine aittir) dosyasındadır. / gnome-ssh-askpass ve X yoksa (yani SSH üzerinden PuTTY üzerinden oturum açılmışsa) bu çalışmaz. Bu dosyadaki satırı yorumlayabilirsiniz (dosyayı silmeyin veya openssh-askpass paketinin güncellenmesinden sonra kurtarılacaktır). Veya paketi openssh-askpass'ı tamamen kaldırın (yum, openssh-askpass'ı kaldırın).
Milan Kerslager

0

Bu cevapların hiçbiri benim için işe yaramadı (Windows 10'da Cygwin üzerinden bir RHEL 6.8 sunucusuna ssh'leme ve RHEL kutusundan bir github.com deposunu klonlamaya çalıştım) bu yüzden yaptığım şey HTTPS kullanıcı adı yerine bir SSH anahtarı aracılığıyla klonlamaktı. parola. örneğin, https url'si yerine git@github.com: MyUsername / myproject.git kullandım. Ayrıca ortak anahtarımı Github'a yükledim. Bu yöntem işe yaradı.

Not: Yukarıdaki çözümlerden aslında git git 1.8 şubesine yükseltmeyi denemedim


0

İletişim kutusunun grafik olarak görünmesi için uzak sunucuya ssh -Y kullanarak oturum açmayı da deneyebilirsiniz.

OP gibi, ssh -X ile giriş yapmak işe yaramadı. Aktarmaya çalışırken, sunucu aynı hata mesajını tekrarladı -(gnome-ssh-askpass:29241): Gtk-WARNING **: cannot open display: - X11 iletimi olmadan ssh üzerinden oturum açarken yaptığı gibi. Bu hata mesajı sadece ssh kullanarak biraz değişti gibi OP ssh -X denediğinde bildirdiklerinden biraz farklı bir davranıştır.

Ancak, benim için, ssh -Y kullanarak giriş yaptıktan sonra: hata olmadı, şifre iletişim kutusu açıldı, şifreyi yazdım ve GitHub itmeyi kabul etti.

Önsöz olarak, ssh -Y, uzak sunucuyu güvenilir bir istemci olarak ele alırken güvenlik sorunlarını açabilir ( /ubuntu/35512/what-is-the-difference-between-ssh-y- güvenilen-x11 yönlendirme-ve-ssh-xu ). Bu yüzden kullanırken dikkatli olun.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.