Eu tenho uma máquina executando o Ubuntu que eu SSH para a minha máquina Fedora 14. Quero encaminhar o X da máquina Ubuntu de volta ao Fedora para que eu possa executar programas gráficos remotamente. Ambas as máquinas estão em uma LAN.
Sei que a -X
opção habilita o encaminhamento do X11 no SSH, mas sinto que estou perdendo algumas das etapas.
Quais são as etapas necessárias para encaminhar o X de uma máquina Ubuntu para o Fedora via SSH?
ssh
xorg
xforwarding
Mr. Shickadance
fonte
fonte
Respostas:
O encaminhamento do X11 precisa estar ativado no lado do cliente e no servidor.
No lado do cliente , a opção
-X
(X maiúsculo) parassh
ativar o encaminhamento do X11, e você pode torná-lo o padrão (para todas as conexões ou para uma conexão específica) comForwardX11 yes
in~/.ssh/config
.No lado do servidor ,
X11Forwarding yes
deve ser especificado em/etc/ssh/sshd_config
. Observe que o padrão é sem encaminhamento (algumas distribuições ativam-no por padrão/etc/ssh/sshd_config
) e que o usuário não pode substituir essa configuração.O
xauth
programa deve ser instalado no lado do servidor. Se houver algum programa X11 lá, é muito provável quexauth
esteja lá. No caso improvável de terxauth
sido instalado em um local fora do padrão, ele pode ser chamado através~/.ssh/rc
(no servidor!).Observe que você não precisa definir nenhuma variável de ambiente no servidor.
DISPLAY
eXAUTHORITY
será automaticamente definido com seus valores adequados. Se você executar o ssh eDISPLAY
não estiver definido, significa que o ssh não está encaminhando a conexão X11.Para confirmar se o ssh está encaminhando o X11, verifique se há uma linha
Requesting X11 forwarding
nassh -v -X
saída. Observe que o servidor não responderá de nenhuma maneira, uma precaução de segurança de ocultar detalhes de possíveis invasores.fonte
xhost +
.xhost
é de uma época mais delicada quando ter uma máquina conectada à rede significava que você era confiável.xhost +
significa que qualquer pessoa que possa falsificar seu IP pode assumir o controle da sua sessão do servidor X.ssh -X
irá configurar todas as autorizações necessárias. Se o encaminhamento do X11 estiver desativado na configuração do servidor, converse com seu administrador; se isso não funcionar, consulte Encaminhamento X11 por SSH, se a configuração do servidor não permitir .~/.ssh/config
e/etc/ssh/sshd_config
no mesmo local. Não sabia dizer se eram arquivos diferentes ou apenas uma alteração na nomenclatura..Xauthority
arquivo. Se estiver usando o Red Hat ou outro sistema com o SELinux, verifique o contexto do SELinux, consulte unix.stackexchange.com/questions/36540/…ssh -X
executarxterm &
para obter um terminal gráfico como o teste final para ver se está funcionando.Para que o encaminhamento do X11 funcione no ssh, você precisará de três itens.
Se você possui os itens 1 e 2, mas está faltando o número 3, terá uma variável de ambiente DISPLAY vazia.
Sopa de nozes, veja como fazer o encaminhamento do X11 funcionar.
No seu servidor, verifique se / etc / ssh / sshd_config contém:
Pode ser necessário o SIGHUP sshd, para que ele capte essas alterações.
No seu servidor, verifique se o xauth está instalado.
Se você não tiver o xauth instalado, encontrará o problema "variável de ambiente DISPLAY vazia".
No seu cliente, conecte-se ao seu servidor. Certifique-se de dizer ao ssh para permitir o encaminhamento do X11. eu prefiro
mas você pode gostar
ou você pode configurá-lo em seu ~ / .ssh / config.
Hoje eu estava encontrando essa variável de ambiente DISPLAY vazia hoje, quando ssh'ing em um novo servidor que não administro. Rastrear a parte xauth que faltava foi um pouco divertido. Aqui está o que eu fiz e o que você pode fazer também.
Na minha estação de trabalho local, onde sou administrador, verifiquei que o / etc / ssh / sshd_config foi configurado para encaminhar o X11. Quando ssh -X volto ao localhost, o meu DISPLAY está configurado corretamente.
Forçar a desabilitação do DISPLAY não foi muito difícil. Eu só precisava assistir o que o sshd e o ssh estavam fazendo para configurá-lo corretamente. Aqui está o resultado completo de tudo o que fiz ao longo do caminho.
Em vez de usar o sudo para forçar a cópia dos meus arquivos ssh_host_ {dsa, rsa} _key no lugar, usei o ssh-keygen para criar arquivos fictícios para mim.
Enxágüe e repita com -t dsa:
Edite ~ / dummy-sshd / sshd_config para apontar para os novos arquivos de chave ssh_host corretos.
Inicie o sshd em uma nova porta no modo sem desanexação:
Opa, corrija melhor esse caminho:
Coloque um novo terminal e faça o ssh no host local na porta 50505:
Veja as últimas três linhas lá. Por sorte, tive o DISPLAY configurado e essas duas linhas bonitas de / usr / bin / xauth.
A partir daí, era brincadeira de criança afastar meu / usr / bin / xauth para /usr/bin/xauth.old, desconectar do ssh e interromper o sshd, em seguida, inicie o sshd e o ssh novamente no localhost.
Quando o / usr / bin / xauth se foi, não vi o DISPLAY refletido no meu ambiente.
Não há nada brilhante acontecendo aqui. Principalmente, tive sorte em escolher uma abordagem sensata para tentar reproduzir isso na minha máquina local.
fonte
export DISPLAY=:10
. Eu nunca adivinhei esse número de exibição.Certifique-se de que:
xauth
instalou no servidor (consulte:xauth info
/xauth list
).No servidor, seu
/etc/ssh/sshd_config
arquivo tem estas linhas:No lado do cliente, seu
~/.ssh/config
arquivo tem as seguintes linhas:No lado do cliente, você tem o servidor X instalado (por exemplo, macOS: XQuartz; Windows: Xming).
Para fazer o encaminhamento do X11 usando SSH, você precisa adicionar
-X
ao seussh
comando, por exemploverifique se o seu não
DISPLAY
está vazio:Se for, com um parâmetro detalhado para ssh (
-v
), verifique se há avisos, por exemploCaso você tenha um X11 não confiável, como mostrado acima, tente
-Y
sinalizar (se você confiar no host):Consulte: O que significa “Aviso: falha na configuração de encaminhamento do X11 não confiável: dados da chave xauth não gerados” significa quando o ssh'ing com -X?
Caso você avise: Sem dados xauth , você pode tentar gerar um novo
.Xauthority
arquivo, por exemploConsulte: Criar / recriar um novo arquivo .Xauthority
Se você tiver avisos diferentes dos descritos acima, siga as outras dicas.
fonte
A correção é adicionar esta linha ao seu
/etc/ssh/sshd_config
:https://joshua.hoblitt.com/rtfm/2013/04/how_to_fix_x11_forwarding_request_failed_on_channel_0/
fonte
Deixando o Ubuntu bash no Windows 10 executar
ssh -X
para obter um ambiente de GUI em um servidor remotoInstale todos os seguintes. Na janela, instale
Xming
. No Ubuntu bash, usesudo apt install
para instalarssh xauth xorg
.Vá para a pasta contém o
ssh_config
arquivo, o meu é/etc/ssh
.Edite
ssh_config
como administrador (USEsudo
). Dentrossh_config
, remover o hash#
nas linhasForwardAgent
,ForwardX11
,ForwardX11Trusted
, e definir os argumentos correspondentes ayes
.No
ssh_config
arquivo, remover o hash frente#
antesPort 22
eProtocol 2
, além de acrescentar uma nova linha no final do arquivo para indicar o local do arquivo xauth,XauthLocaion /usr/bin/xauth
, lembre-se escrever o seu próprio caminho de arquivo xauth.Agora que terminamos de editar o
ssh_config
arquivo, salve-o quando sairmos do editor. Agora vá para a pasta~
ou$HOME
, acrescenteexport DISPLAY=localhost:0
ao seu.bashrc
arquivo e salve-o.Estamos quase terminando. Reinicie seu shell bash, abra seu
Xming
programa e usessh -X yourusername@yourhost
. Então aproveite o ambiente da GUI.O problema também está no subsistema Ubuntu no Windows e o link está em
https://gist.github.com/DestinyOne/f236f71b9cdecd349507dfe90ebae776
fonte
Adicionar
X11UseLocalhost no
para/etc/ssh/sshd_config
e reiniciar o servidor SSH.Se você não exibir o DISPLAY, verifique se o xauth está instalado corretamente e tente novamente.
RHE / CEntos não tem esse problema, é uma coisa do Ubuntu!
fonte
Para mim, o problema estava na opção de montagem nodev para o sistema de arquivos / tmp. O X11 precisa de um arquivo especial para ser criado lá.
Portanto, verifique quais são as opções de montagem para o sistema de arquivos / tmp se você usar uma partição ou disco separado para isso.
fonte
Para adicionar as excelentes respostas anteriores (configuração
~/.ssh/config
e verificação para ver se aDISPLAY
variável de ambiente está definida no cliente, configuração/etc/ssh/sshd_config
e instalaçãoxauth
no servidor), verifique também sexterm
está instalada no cliente, por exemplofonte
xauth
pode ficar bloqueado.Usando
Na máquina em que eu estava tentando
ssh
arrombar a travaxauth
. Terminar assh
sessão após a emissão e, emxauth -b
seguida, efetuar o login finalmente me permitiu ter sucessoecho $DISPLAY
. Definitivamente, tente isso antes de recriar.Xauthority
fonte
X11Forwarding
deve ser definido no servidor SSH (no seu caso, a caixa Ubuntu)sshd_config
e você deve permitir que o X11 seja encaminhado para o cliente SSH (sua caixa Fedora) passando a-X
opção ou editando ossh_config
arquivo para adicionar oForwardX11
padrão.fonte
xauth
instalado na máquina remota, caso contrário, o conteúdo da autoridade x não funcionará.DISPLAY
?$DISPLAY
seX11Forwarding
está ativado exauth
está presente no sistema do cliente.export DISPLAY=:10.0
mas não de outra forma. Caso contrário, reclama que não pode encontrar:0
. Talvez algo mais seja necessário para que isso aconteça automaticamente?