ssh retorna a mensagem “Falha na solicitação de encaminhamento do X11 no canal 1”

27

Quando eu ssh em um servidor remoto que não está executando nenhum tipo de ambiente de desktop X11, recebo a seguinte mensagem.

$ ssh user@server
X11 forwarding request failed

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

Como posso me livrar dessas mensagens?

    
por slm 29.01.2014 / 19:23

8 respostas

32

Estas mensagens podem ser eliminadas através de 1 de 3 métodos, usando apenas opções SSH. Você sempre pode enviar mensagens para /dev/null , mas esses métodos tentam lidar com a mensagem por meio da configuração, em vez de apenas capturá-la e despejá-la.

Método 1 - instalar o xauth

O servidor em que você está se comunicando está reclamando que não é possível criar uma entrada no arquivo .Xauthority do usuário, porque xauth não está instalado. Então você pode instalá-lo em cada servidor para se livrar dessa mensagem irritante.

No Fedora 19 você instala xauth assim:

$ sudo yum install xorg-x11-xauth

Se você tentar ssh no servidor, verá uma mensagem informando que uma entrada está sendo criada no arquivo .Xauthority do usuário.

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

Logins subsequentes não mostrarão mais esta mensagem.

Método 2 - desabilite-o via ForwardX11

Você pode instruir o cliente ssh a não tentar habilitar o encaminhamento do X11 através da inclusão do parâmetro SSX ForwardX11.

$ ssh -o ForwardX11=no root@server

Você pode fazer a mesma coisa com a opção -x :

$ ssh -x root@server

Isso desativará apenas temporariamente essa mensagem, mas será uma boa opção se você não puder ou não quiser instalar o xauth no servidor remoto.

Método # 3 - desabilite via sshd_config

Normalmente, esse é o padrão, mas, caso não seja, você pode configurar seu sshd server para que o X11Forwarding seja desativado, em /etc/ssh/sshd_config .

X11Forwarding no

Dos três métodos, geralmente uso # 2, porque geralmente quero X11Forwarding na maioria dos meus servidores, mas não quero ver os X11.... avisos

$ HOME / .ssh / config

Na maioria das vezes, essas mensagens nem aparecem. Eles geralmente só estão presentes quando você tem as seguintes entradas no seu arquivo $HOME/.ssh/config , na parte superior.

ServerAliveInterval 15
ForwardX11 yes
ForwardAgent yes
ForwardX11Trusted yes

GatewayPorts yes

Portanto, essa configuração, que está gerando a geração dessas X11.. mensagens, então, novamente, o método # 2 parece ser o mais apropriado se você quiser operar com ForwardX11 yes por padrão, mas depois seletivamente desativá-lo para determinadas conexões da perspectiva do ssh do cliente.

Segurança

Geralmente, não é aconselhável executar com ForwardX11 yes em todos os momentos. Portanto, se você deseja operar suas conexões SSH da maneira mais segura possível, é melhor fazer o seguinte:

  1. Não inclua ForwardX11 yes no seu arquivo $HOME/.ssh/config
  2. Use somente o ForwardingX11 quando precisar usar ssh -X user@server
  3. Se puder, desative X11Forwarding completamente no servidor, para que não seja permitido

Referências

por 29.01.2014 / 19:44
10

No meu caso, adicionar essa string a /etc/ssh/sshd_config resolveu o problema:

X11UseLocalhost no
    
por 22.04.2015 / 15:33
10

Corri através disso hoje e bati minha cabeça por um tempo até que eu tropecei em um cenário ssh:

Se é o RHEL 7 (centOS, OEL, etc), e ele tem o ipv6 desativado, ele precisa:

AddressFamily inet

definido em / etc / ssh / sshd_config.

    
por 17.12.2015 / 17:39
2

Outra pequena variação seria se você quisesse parar de ver essa mensagem (ou seja, parar de tentar encaminhar o X11) para determinados servidores, mas ainda assim manter o padrão como ForwardX11 yes para todas as outras conexões.

Para este cenário, você pode desabilitar o encaminhamento do X11 para um host (ou intervalo) específico em seu ~ / .ssh / config. Algo parecido com isto:

host 10.1.1.*
ForwardX11 no 

Reconhecimento: Este é um ligeiro embelezamento da resposta existente (e muito completa) existente - já que eu não pude comentar!

    
por 01.12.2015 / 21:51
2

Se a execução do cliente no modo detalhado ( ssh -v user@host ) lhe der

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

mas xauth está de fato instalado no servidor, então provavelmente é porque sshd procura pelo executável xauth em local errado ( / usr / X11R6 / bin / xauth geralmente). Pode-se consertar isso definindo

XAuthLocation /usr/bin/xauth

em / etc / sshd / sshd_config (ou qualquer que seja o seu servidor configurado).

    
por 29.04.2016 / 15:43
0

Um ponto importante a ser observado depois de fazer as alterações de configuração é que você terá que matar o sshd para que ele receba as alterações:

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

sendo o usuário root.

    
por 03.07.2018 / 10:15
0

Configurando o encaminhamento do X11 por host

Além de todas as respostas excelentes que já estão aqui, você pode configurar ForwardX11 por host, portanto, se apenas server falhar, você poderá adicionar uma entrada ao seu arquivo ~/.ssh/config dos seguintes formulário:

Host server server.domain.dom
    ForwardX11 no

Você pode até mesmo usar entradas como as aliases para conjuntos inteiros de configurações

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

Isso é especialmente útil se você tiver configurado os nomes de servidor de preenchimento automático para SSH e SCP .

    
por 27.09.2018 / 18:21
-2
  1. Defina as seguintes 2 opções em /etc/ssh/sshd_config no seu host RHEL

    X11Forwarding yes X11UseLocalhost no

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

  3. sudo yum install xauth
  4. ssh de volta ao seu host RHEL com o comutador -X: %código%
por 30.12.2015 / 11:14

Tags