ssh “X11 yönlendirme isteği kanal 1'de başarısız oldu” iletisini döndürüyor


33

Herhangi bir tür X11 masaüstü ortamı çalıştırmayan uzak bir sunucuya ssh gönderdiğimde aşağıdaki mesajı alıyorum.

$ ssh user@server
X11 forwarding request failed

$ ssh user@server ls
X11 forwarding request failed on channel 1
file1
file2
...

Bu mesajlardan nasıl kurtulabilirim?

Yanıtlar:


38

Bu mesajlar, yalnızca SSH seçeneklerini kullanarak 3 yöntemden biriyle elimine edilebilir. Siz de her zaman mesaj da gönderebilirsiniz, /dev/nullancak bu yöntemler yalnızca yakalama ve boşaltma yerine, yapılandırma yoluyla mesajla uğraşmaya çalışır.

Yöntem # 1 - xauth'u yükleyin

Yükseltdiğiniz sunucu .Xauthority, xauthyüklü olmadığı için kullanıcının dosyasında bir giriş oluşturamayacağından şikayet ediyor . Böylece bu sinir bozucu mesajdan kurtulmak için her sunucuya kurabilirsiniz.

Fedora 19'da şu şekilde kurarsınız xauth:

$ sudo yum install xorg-x11-xauth

Daha sonra sshsunucuya girmeyi denerseniz , kullanıcının .Xauthoritydosyasında bir girdi oluşturulduğunu belirten bir mesaj görürsünüz .

$ ssh root@server
/usr/bin/xauth:  creating new authority file /root/.Xauthority
$

Sonraki girişler artık bu mesajı göstermeyecek.

Yöntem # 2 - ForwardX11 üzerinden devre dışı bırakın

sshİstemciye, SSH parametresi ForwardX11'i ekleyerek X11 iletmeyi etkinleştirmeyi denememesi talimatını verebilirsiniz .

$ ssh -o ForwardX11=no root@server

-xDüğmeyle de aynı şeyi yapabilirsiniz :

$ ssh -x root@server

Bu yalnızca bu mesajı geçici olarak devre dışı bırakacaktır, ancak xauthuzak sunucuya kuramıyorsanız veya istemiyorsanız iyi bir seçenektir .

Yöntem # 3 - sshd_config ile devre dışı bırakın

Bu genellikle varsayılandır, ancak olmaması durumunda, sshdsunucunuzu X11Forwarding in kapalı olacak şekilde ayarlayabilirsiniz /etc/ssh/sshd_config.

X11Forwarding no

Genellikle # 2 kullandığım 3 yöntemden, çünkü çoğu zaman X11Forwardingsunucularımın çoğunu isteyeceğim , ancak sonra X11....uyarıları görmek istemiyorum.

$ HOME / .ssh / config

Bu mesajın çoğu zaman görünmeyeceği bile. Genellikle, yalnızca $HOME/.ssh/configdosyanızda aşağıdaki girişler olduğunda , en üstte bulunurlar .

ServerAliveInterval 15
ForwardX11 yes
ForwardAgent yes
ForwardX11Trusted yes

GatewayPorts yes

Sonuçta bu X11..mesajların oluşumunu yönlendiren bu kurulumdur, bu nedenle, eğer tekrar ForwardX11 yesvarsayılan olarak üzerinde çalışmak istiyorsanız en uygun yöntem 2 gibi görünüyor , ancak daha sonra sshmüşteri perspektifinden belirli bağlantılar için seçerek devre dışı bırakın .

Güvenlik

Genelde ForwardX11 yesher zaman üzerinde çalışmanız tavsiye edilmez . Dolayısıyla, SSH bağlantılarınızı mümkün olan en güvenli malikanede kullanmak istiyorsanız, aşağıdakileri yapmanız en iyisidir:

  1. Dahil etmeyin ForwardX11 yessizin de $HOME/.ssh/configdosyaya
  2. ForwardingX11'i yalnızca kullanmanız gerektiğinde kullanın ssh -X user@server
  3. Yapabiliyorsanız, X11Forwardingsunucuda tamamen devre dışı bırakın, böylece izin verilmez.

Referanslar


Bana unix.stackexchange.com/questions/470331/… ile yardımcı olabilir misiniz ?
aşırı değişim

Kayıt için, ben o mesajı aldı edildi uzak sunucuda X istemcileri çalıştırmak için çalışıyor. $ DISPLAY ayarlanmadığından fırlatmadılar. İlk önerinizle çözmeyi başardım: xauth'u kurun.
Tom Ellis

13

Benim durumumda /etc/ssh/sshd_configsorunu çözmek için bu dizeyi eklemek :

X11UseLocalhost no

Bu benim için çalıştı (sunucu zaten xauth yüklü idi). Teşekkürler.
Paul Higgins,

Bu sorunumu çözdü, ancak nedenini anlayamadığımı anlamıyorum. Biri locahostX11 iletmeyi kabul etmeyi bırakan üç özdeş Debian 7 makinesi olmalı . Diğer iki X11 iletme hala çalışıyor. Neyin değişebileceği hakkında bir fikrin var mı?
Kyle Strand,

12

Bugün bununla karşılaştım ve bir ssh ayarına değene kadar kafamı bir süre dövdüm:

RHEL 7 ise (centOS, OEL, vb.) Ve ipv6 devre dışı bırakılmışsa, ihtiyacı:

AddressFamily inet

/ etc / ssh / sshd_config konumunda.


eğer sadece bununla ilgili hata mesajı ...
Jack Wasey 20: 51'de

komik olan ne biliyor musun? Bugün bununla karşılaştım ve googledim, bu makaleyi buldum ve dört yıl önce kendi yorumumu buldum ve "SORUN VARAN YA" dedi.
Systemspoet

2

Başka bir küçük değişiklik ise, belirli sunucular için bu mesajı görmeyi bırakmak (X11'i iletmeyi denemekten vazgeçmek) ancak yine de tüm diğer bağlantılar için varsayılanı ForwardX11'e evet tutmaksa olacaktır.

Bu senaryoda, ~ / .ssh / config'nizdeki belirli bir ana bilgisayar (veya aralık) için X11 iletmeyi devre dışı bırakabilirsiniz. Bunun gibi bir şey:

host 10.1.1.*
ForwardX11 no 

Teşekkür: Bu, mevcut (ve çok eksiksiz) varolan cevabın hafif bir süslemesidir - yorum yapamadım!


2

İstemciyi ayrıntılı modda çalıştırıyorsanız ( ssh -v user@host) size

debug1: Remote: No xauth program; cannot forward with spoofing.

ancak xauthgerçekten sunucuya kurulur, o zaman muhtemelen sshd yanlış yerde çalıştırılabilir xauth arar ( çünkü genellikle / usr / X11R6 / bin / xauth ). Bir ayarlayarak bunu düzeltebilir

XAuthLocation /usr/bin/xauth

içinde / etc / sshd / sshd_config (veya ne olursa olsun sunucu ile yapılandırılmış).


Bu benim için CentOS 7'de çalıştı. Bu gördüğüm tam hata mesajı.
Brian Minton

Bu benim sorunumdu, Mac'e uzaktan giriş yapmaya çalışıyordum. Doğru teşvik, XAuthLocation / opt / X11 / bin / xauth idi
Leon Avery

1

Ana bilgisayar başına X11 iletmeyi yapılandırma

Zaten burada verilen tüm mükemmel cevaplara ek ForwardX11olarak, ana bilgisayar bazında yapılandırabilirsiniz , böylece yalnızca serverbu şekilde başarısız olursa ~/.ssh/config, aşağıdaki formdaki dosyanıza bir giriş ekleyebilirsiniz :

Host server server.domain.dom
    ForwardX11 no

Bu gibi girdileri tüm yapılandırma kümeleri için alliases olarak da kullanabilirsiniz

Host my.server
    HostName server.domain.dom
    User user
    Port 1234
    ForwardX11 no

Bu, SSH ve SCP için Otomatik Tamamlama sunucusu adlarını ayarladıysanız özellikle yararlıdır .


1

Bu soruya sshd-xauthneredeyse on yıllık bir hatayla rastladım . İlk olarak atlanan xauth, ikincisi böceği ele alan iki çözüm bildirildi .


Çözüm 1 - xauth baypas

  • yerel - bir Xserver'a hizmet veren yerel makine.
  • uzak - Xserver'a giden verileri çalıştıran uygulamaya hizmet veren uzak makine

Uzaktan /etc/ssh/sshd_config:

X11Forwarding no
X11DisplayOffset 10
X11UseLocalhost yes

Uzaktan kumanda ~/.Xauthorityboş veya mevcut değil

Yerelde:

Xephyr -ac -screen 1280x800 -br -reset   :2 &
DISPLAY=:2 ssh  -fR 6010:/tmp/.X11-unix/X2  user@remote "DISPLAY=:10 xeyes"

Testte, yerel Ubuntu 18.05'i çalıştırıyordu, uzaktan Debian Jesse'yi çalıştırıyordu.

Ben de bu çözümü başka bir soruya cevap olarak gönderdim .


2. Çözüm - sshd / xauth hatasını adresleyin

Bu çözüm, tek başına yeterli olmamakla birlikte, yukarıdaki systempoet çözümüne yakındır .

/etc/ssh/sshd_configUzaktan kumandadaki değişikliklere ek olarak :

AddressFamily inet

/etc/hosts uzaktan kumanda da değiştirildi:

::1     localhost ip6-localhost ip6-loopback

İkisinden biri yorumlandıysa, hata mesajı

X11 forwarding request failed on channel 0

ssh -X ...aramadan sonra belirdi . Ayrıca /var/log/auth.loghatayı gösterdi:

sshd[...]: error: Failed to allocate internet-domain X11 display socket

Hatayı üretmek için test edin (düzeltmeden önce):

Yerel makine:

$ Xephyr -ac -screen 1280x800 -br -reset -terminate  :2 &
$ DISPLAY=:2 ssh -X  user@remote
X11 forwarding request failed on channel 0

0

Yapılandırma değişikliklerini yaptıktan sonra not edilmesi gereken önemli bir nokta, değişiklikleri toplayabilmesi için sshd'yi öldürmek zorunda olmanız gerektiğidir:

cat /var/run/sshd.pid | xargs kill -1

kök kullanıcı olmak.


-2
  1. /etc/ssh/sshd_configRHEL sunucunuzda aşağıdaki 2 seçeneği ayarlayın

    X11Forwarding yes X11UseLocalhost no

  2. sudo /etc/init.d/sshd reload

  3. sudo yum install xauth
  4. -X anahtarlı RHEL sunucunuza geri ssh: ssh -X yourname@rhelbox
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.