Uyarıyı nasıl önleyebilirim Xauth verisi yok; X11 iletimi için sahte kimlik doğrulama verileri kullanıyor musunuz?


66

Mac'imden Linux'a (Debian) ssh bağlantısı her başlattığımda şu uyarıyı alıyorum:

No xauth data; using fake authentication data for X11 forwarding.

Bu, git veya mercurial gibi ssh kullanan araçlar için de geçerlidir.

Bunun görünmesini engellemek için sistemimde yerel bir değişiklik yapmak istiyorum.

Not: Mac OS X'imde (10.8.1) X11 sunucum var (XQuartz 2.7.3 (xorg-server 1.12.4)) ve düzgün çalışıyor, saati yerel olarak veya uzaktan başarıyla başlatabilirim.


1
Hangi komutu ssh kullanıyorsunuz?
DerfK

@DerfK sadece ssh hostnameama benim içinde biraz zaman önce ~/.ssh/configekledim ForwardX11 yes. Yine de bu orada olmasını istediğim bir şey.
sorin

Ubuntu Kullanarak 16.04 LTS (Ağustos 2017) Pes ediyorum. Alt satırda, hata vermesine rağmen çalışıyor. Kullandığım ssh -Y hostnameLinux ve ssh -x hostnameWindows üzerinde OpenSSH kullanırken.
SDsolar

Yanıtlar:


66

Gönderilen çözümlerin hiçbiri benim için çalıştı. İstemci (masaüstü) sistemim macOS 10.12.5 (Sierra) kullanıyor. Komutun -vseçeneklerini ekledim sshve bana dedi ki

debug1: No xauth program.

Bu xauthprograma doğru bir yolu olmadığı anlamına gelir . (MacOS'un bu sürümünde xauthstandart yol yoktur .) Çözüm, bu satırı /etc/ssh/ssh_config( /etc/ssh/configbazı ayarlarda olabilir) ya da içine ~/.ssh/config(yönetici haklarına sahip değilseniz ) eklemek oldu.

XAuthLocation /opt/X11/bin/xauth

Şimdi uyarı mesajı gitti.


10
AMAN TANRIM. Yıllar bir çözüm bulmaya çalıştım ve bu işe yaradı. Yıllar diyorum! Bunu düzenlemek yerine dosyamdaki Host *girişin altına bu satırı ekleyerek yaptığımı unutmayın . Bunun için bulduğum tek belgeydi . ~/.ssh/config/etc/ssh/ssh_configman sshd_config
Demitri

Bu benim için de işe yaradı. Anladığım kadarıyla, XQuartz'ın finansman sıkıntısı nedeniyle iyi bakılmadığını biliyorum. Dolayısıyla, bunun gibi meseleleri tasvir etmenin beklediğimden daha az olduğunu düşünüyorum.
AlanObject

Yüksek Sierra'da; Bu benim için de işe yaradı.
mklein9

1
Kabuğunuz PATH'nizde xauth bulsa bile bu sorunu yaşayabileceğinizi unutmayın ! Sanırım ssh müşterisi PATH’ı güvenlik nedenleriyle dezenfekte ediyor?
MarcH

1
Bu çözüm benim için işe yaramadı. Win7'de Cygwin kullanıyorum. "Ana Bilgisayar *" girişi altında veya bu satırın önüne "XAuthLocation / usr / bin / xauth" eklemek, ~ / .ssh / config dosyasında hiçbir fark yaratmadı.
David M. Karr

22

Sebebini buldum ~/.ssh/config, tamamlanmadı, ikisine de ihtiyacınız var:

Host *
    ForwardAgent yes
    ForwardX11 yes

Benim hatam sadece ForwardX11 seçeneğini dahil etmemdi.


12
Bunun neden gerekli / alakalı olduğundan emin değilim. ForwardAgentÖnbelleğe alınmış tuşların ssh-agentçoklu iç içe SSH bağlantılarından geçmesine izin vermek için kullanılır . X11 ile alakası olmamalıdır. Ve fwiw, bazılarına göre, güvenlik açısından iyi bir fikir değil: heipei.github.io/2015/02/26/…
underscore_d

2
Bu doğru gelmiyor, asıl yardımı X11 yönlendirmesini kapatmak veya ayarlamak için xauth yapılandırmasını düzeltmektir. Bu ssh ajanları ile ilgili değildir.
6'da eckes

Bu çözüm benim için işe yaramadı.
David M. Karr

Bu ~/.ssh/configmacOS istemcisinde mi yoksa Linux sunucusunda mı? Bende de bu dosyalar var. Benzer bir şeyim var/etc/ssh/sshd_config
Max Coplan

12

ssh -X Uzak bir sunucuda bir GUI ortamı elde etmek için Windows 10'da Ubuntu bash uygulamasının çalıştırılması

  • İlk

Aşağıdakileri yükleyin. Pencerede yükleyin Xming. Ubuntu bash'da sudo apt installkurmak için kullanın ssh xauth xorg.

sudo apt install ssh xauth xorg
  • İkinci

Klasöre git, ssh_configdosyayı içerir , benim /etc/ssh.

  • Üçüncü

Düzenleme ssh_configyöneticisi (KULLANIM olarak sudo). İçinde ssh_config, karma kaldırma #hatları ForwardAgent, ForwardX11, ForwardX11Trustedve karşılık gelen bağımsız değişkenler ayarlanır yes.

# /etc/ssh/ssh_config

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
  • ileri

Gelen ssh_configdosyanın ön karma kaldırmak #önce Port 22ve Protocol 2hem de xauth dosya konumunu belirtmek dosyanın sonuna yeni bir satır eklemek, XauthLocation /usr/bin/xauth, xauth dosyasının kendi yolunu yazmak unutmayın.

# /etc/ssh/ssh_config

#   IdentifyFile ...
    Port 22
    Protocol 2
#   Cipher 3des
#   ...
#   ...
    ...
    ...
    GSSAPIDelegateCredentials no
    XauthLocation /usr/bin/xauth
  • Beşinci

Artık ssh_configdosyayı düzenlemeyi bitirdiğimizden , editörden ayrıldığımızda kaydedin. Şimdi klasöre git ~ya $HOME, ekler export DISPLAY=localhost:0sizin için .bashrcdosya ve kaydedin.

# ~/.bashrc
...
...
export DISPLAY=localhost:0
  • Son

Neredeyse bitti. Bash kabuğunuzu yeniden başlatın, Xmingprogramınızı açın ve kullanın ssh -X yourusername@yourhost. Ardından GUI ortamının tadını çıkarın.

ssh -X yourusername@yourhost

Sorun aynı zamanda Windows'taki Ubuntu alt sisteminde ve bağlantı ise

https://gist.github.com/DestinyOne/f236f71b9cdecd349507dfe90ebae776

Not: Bağlantılı metin 2 yazım hatası içerir ( XauthLocaionyerine XauthLocation)


Soru Windows ile ilgili değil.
kasperd

MacOS'ta hemen hemen aynı, farklar yerine Xming, almalıyız XQuartzve ssh_configdosya farklı bir konumda, benimki /private/etc/ssh.
DestinyOne

Ve ayrıca, son satır ssh_configolacak:XAuthLocation /opt/X11/bin/xauth
DestinyOne

2
Düzenleme gerekli: XauthLocaion-> XauthLocation(bu düzenleme yapmak için çok küçük).
echristopherson

1
Yüklemeden yanında xming, ssh, xauthve xorg(adım 1), benim için gerekli tek şeydiexport DISPLAY=localhost:0
Eponymous

11

Belirtildiği gibi, xauthOS X'de Yosemite, XQuartz'in $DISPLAYayarlarıyla çalışmayan eski bir sürüme gerilemiştir :

% xauth -V
1.0.9
% xauth generate $DISPLAY .
xauth: (argv):1:  bad display name "/private/tmp/com.apple.launchd(...)/org.macosforge.xquartz:0" in "add" command

1
Aynı hatları OS X 10.11'de test ettim ve hiçbir hata alamadım. Yine aynı XQuartz sürümü.
Sorin

1
@guest xauth generate $DISPLAY .Komutunuz Mac OS X High Sierra'da (10.13) çalıştı ve pb'mi çözdü No xauth data; using fake authentication data for X11 forwarding..
SebMa,

2

MacOS'ta şu anda bir hata var. Ben de bununla karşılaştım. Benim için düzeltme, .bash_profile dosyasına aşağıdakileri eklemekti.

dispdir=`dirname $DISPLAY`
dispfile=`basename $DISPLAY`
dispnew="$dispdir/:0"
if [ -e $DISPLAY -a "$dispfile" = "org.x:0" ]; then
  mv $DISPLAY $dispnew
fi
export DISPLAY=$dispnew

Temel olarak, X kökünüzle ilişkili dosya kanalının adı doğru şekilde işlenemez ve bu nedenle düzeltilmesi gerekir. :-)


Bunun SourceTree gibi GUI OS X uygulamalarındaki hatayı çözeceğinden şüpheliyim.
Sorin

Mac'i sunucu olduğu için X kullanarak emacs çalıştırmak için Sierra üzerinde çalıştığını onaylayın. Bu, müşterinin uzak bir makinede olduğu durumlarda geniş çapta çalışmalıdır
Mark Mullin

2

Dahil olmak üzere

XAuthLocation / opt / local / bin / xauth, ~ / .ssh / config içinde

macOS'umda Sierra 10.12.6 benim için çalıştı. Cevap 7'den küçük bir değişiklik).


1

Ben sadece ~ / .Xauthority (hedef makine) kök klasörümden ssh -X 192.168.123.1 'i tekrar kaldırdım ve ik çalıştı.


Bunun Mac OS Sierra 10.12.4'te bir cevap olduğunu onaylayabilirim. SSH sunucusundaki ~ / .Xauthority öğesini kaldırmak hile yapar: ~$ mv ~/.Xauthority ~/.Xauthority.bak Yeni bir sihirli çerez, tekrar giriş yaptıktan sonra otomatik olarak ~ / .Xauthority konumuna geri getirildi. Hiçbir Bash komut dosyası gerekli değildir.
Kenneth Pegasus

1

Benim durumumda, iletilmeyen Magic çerezini içeren .Xauthority'nin sorunu vardı, http://askubuntu.com/questions/571116/ adresindeki Fabby , 2014-11-14 tarihlerinde bu satırın. . su çağırırken kullanıcılar arasında xauth tuşlarının iletilmesine izin veren profil:

export $(dbus-launch)

Daha önce de ekledim:

export XAUTHORITY=~/.Xauthority 

ssh -X called @ ile çağrılan uzaktan kumandayı bulacaktır.

Benim durumumda.

  cd /home/<child_user>;ln -sf /home/<parent_user>/.Xauthority .xAuthority

doğru haklara sahip:

  sudo chown <parent_user> /home/<parent_user>/.profile
  chmod a+rw /home/<parent_user>/.profile 

bu nedenle ve için erişilebilir. Proxy hesabı boyunca uygulamaları tetikleyebilir ve yerel pencerede X pencereli sonucu görüntüleyebilir!

İPUCU: Xauth listesini kontrol edin ... eğer sihirli çerezi yansıtıyorsa.


0

Bunu yorum olarak eklerdim, ancak yeterli temsilcim yok. Sorin'in çözümüne bir satır daha eklemek benim için işe yaradı.

Ssh config dosyanızı açın ve vim ~/.ssh/config sonra şu satırları ekleyin:

Host *
    ForwardAgent yes
    ForwardX11 yes
    XAuthLocation /opt/X11/bin/xauth

xauthKonumunuzu iki kere kontrol edebilirsiniz :

which xauth

Bunun gerçekten işe yarayacağından emin değilim çünkü xauth konumu her uzak makinede farklı olacak. Sizinki bir MacOS'a benziyor, ancak Linux farklı yerlerde bulunuyor. Ben çoğunlukla ForwardX11'i tamamen etkisizleştirmeye başladım çünkü neredeyse hiç kullanmamıştım.
sorin
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.