Risposte:
Questi messaggi possono essere eliminati attraverso 1 di 3 metodi, usando solo le opzioni SSH. Puoi sempre inviare anche messaggi a, /dev/null
ma questi metodi tentano di gestire il messaggio attraverso la configurazione, piuttosto che semplicemente intercettarli e scaricarli.
Il server in cui stai remotando si lamenta che non è possibile creare una voce nel .Xauthority
file dell'utente , perché xauth
non è installato. Quindi puoi installarlo su ogni server per sbarazzarti di questo fastidioso messaggio.
Su Fedora 19 si installa xauth
così:
$ sudo yum install xorg-x11-xauth
Se poi provi ad ssh
entrare nel server vedrai un messaggio che sta creando una voce nel .Xauthority
file dell'utente .
$ ssh root@server
/usr/bin/xauth: creating new authority file /root/.Xauthority
$
Gli accessi successivi non mostreranno più questo messaggio.
È possibile ssh
indicare al client di non tentare di abilitare l'inoltro X11 mediante l'inclusione del parametro SSH ForwardX11.
$ ssh -o ForwardX11=no root@server
Puoi fare la stessa cosa con l' -x
interruttore:
$ ssh -x root@server
Questo disabiliterà temporaneamente questo messaggio, ma è una buona opzione se non sei in grado o non sei disposto a installare xauth
sul server remoto.
Questo è in genere il valore predefinito, ma in caso contrario, è possibile configurare il sshd
server in modo che X11Forwarding sia disattivato, in /etc/ssh/sshd_config
.
X11Forwarding no
Dei 3 metodi che uso generalmente # 2, perché spesso vorrò X11Forwarding
attivare la maggior parte dei miei server, ma poi non voglio vedere gli X11....
avvisi
La maggior parte delle volte questi messaggi non vengono nemmeno visualizzati. Di solito sono presenti solo quando hai le seguenti voci nel tuo $HOME/.ssh/config
file, in alto.
ServerAliveInterval 15
ForwardX11 yes
ForwardAgent yes
ForwardX11Trusted yes
GatewayPorts yes
Quindi è questa configurazione, che alla fine sta guidando la generazione di quei X11..
messaggi, quindi, di nuovo, il metodo n. 2 sembrerebbe il più appropriato se si desidera operare con ForwardX11 yes
on per impostazione predefinita, ma poi disabilitarlo selettivamente per determinate connessioni dal ssh
punto di vista del client .
È generalmente sconsigliato di continuare a giocare ForwardX11 yes
sempre. Quindi, se vuoi gestire le tue connessioni SSH nel maniero più sicuro possibile, è meglio fare quanto segue:
ForwardX11 yes
nel tuo $HOME/.ssh/config
filessh -X user@server
X11Forwarding
completamente sul server in modo che non sia consentitoNel mio caso l'aggiunta di questa stringa per /etc/ssh/sshd_config
risolvere il problema:
X11UseLocalhost no
locahost
inoltro X11. L'inoltro X11 sugli altri due funziona ancora. Qualche idea di cosa potrebbe essere cambiato?
Mi sono imbattuto in questo oggi e ho battuto la testa per un po 'fino a quando mi sono imbattuto in un'impostazione ssh:
Se è RHEL 7 (centOS, OEL, ecc.) E ipv6 è disabilitato, è necessario:
AddressFamily inet
impostato in / etc / ssh / sshd_config.
Un'altra leggera variazione sarebbe se si volesse smettere di vedere questo messaggio (cioè smettere di provare a inoltrare X11) per alcuni server ma mantenere comunque l'impostazione predefinita di ForwardX11 sì per tutte le altre connessioni.
Per questo scenario, è possibile disabilitare l'inoltro X11 per un host (o intervallo) specifico nella propria ~ / .ssh / config. Qualcosa come questo:
host 10.1.1.*
ForwardX11 no
Ringraziamento: questo è un leggero abbellimento per la risposta esistente (e molto completa) esistente - dal momento che non ho potuto commentare!
Se si esegue il client in modalità dettagliata ( ssh -v user@host
) ti dà
debug1: Remote: No xauth program; cannot forward with spoofing.
ma xauth
è effettivamente installato sul server, quindi è probabilmente perché sshd cerca xauth eseguibile in una posizione errata ( / usr / X11R6 / bin / xauth di solito). Si può risolvere ciò impostando
XAuthLocation /usr/bin/xauth
in / etc / sshd / sshd_config (o qualunque cosa sia configurato il tuo server).
Oltre a tutte le eccellenti risposte già qui, puoi configurare ForwardX11
su base per host, quindi se solo server
fallisce in questo modo, puoi aggiungere una voce al tuo ~/.ssh/config
file nel seguente modulo:
Host server server.domain.dom
ForwardX11 no
Puoi persino usare voci come questa come allias per interi set di configurazioni
Host my.server
HostName server.domain.dom
User user
Port 1234
ForwardX11 no
Ciò è particolarmente utile se sono stati impostati nomi di server di completamento automatico per SSH e SCP .
Mi sono imbattuto in questa domanda dopo un incontro con un sshd-xauth
bug di quasi un decennio. Vengono segnalate due soluzioni, la prima che esclude xauth
, la seconda che risolve il problema.
Soluzione 1: bypassare xauth
Remoto /etc/ssh/sshd_config
:
X11Forwarding no
X11DisplayOffset 10
X11UseLocalhost yes
Il telecomando ~/.Xauthority
è vuoto o non esiste
Sul locale:
Xephyr -ac -screen 1280x800 -br -reset :2 &
DISPLAY=:2 ssh -fR 6010:/tmp/.X11-unix/X2 user@remote "DISPLAY=:10 xeyes"
Nel test, local eseguiva Ubuntu 18.05, il telecomando eseguiva Debian Jesse.
Ho anche pubblicato questa soluzione come risposta a un'altra domanda.
Soluzione 2: risolvere il bug sshd / xauth
Questa soluzione è vicino a @systempoet 's soluzione di cui sopra , anche se questo da solo non era sufficiente.
Oltre a modificare /etc/ssh/sshd_config
sul telecomando:
AddressFamily inet
/etc/hosts
sul telecomando è stato anche modificato:
::1 localhost ip6-localhost ip6-loopback
Se uno dei due è stato commentato, il messaggio di errore
X11 forwarding request failed on channel 0
è apparso dopo la ssh -X ...
chiamata. Inoltre, ha /var/log/auth.log
mostrato l'errore:
sshd[...]: error: Failed to allocate internet-domain X11 display socket
Test per produrre il bug (prima della correzione):
Macchina locale:
$ Xephyr -ac -screen 1280x800 -br -reset -terminate :2 &
$ DISPLAY=:2 ssh -X user@remote
X11 forwarding request failed on channel 0
Impostare le seguenti 2 opzioni /etc/ssh/sshd_config
nell'host RHEL
X11Forwarding yes
X11UseLocalhost no
sudo /etc/init.d/sshd reload
sudo yum install xauth
ssh -X yourname@rhelbox