O que poderia significar 'Roaming não permitido pelo servidor' do cliente ssh?

25

Não estou conseguindo me conectar a uma instância do servidor SSH e a saída detalhada contém debug1: Roaming not allowed by server. Surgem os seguintes problemas previsíveis e evitáveis:

  • Roaming significa acessar serviços de diferentes tipos de redes. Não consigo descobrir o que isso poderia significar no contexto da saída detalhada de um sshcliente 6.6.1 em execução no Ubuntu 14.04.
  • Não está claro se isso é um erro ou não e se está causando a falha do logon ou não (não quero me aprofundar na falha de conexão aqui; porém, nenhuma das mensagens de saída do sshBTW -> mais problemas e tempo de espera - você foi avisado!)
  • Eu perguntei site:www.openssh.org roamingno google com resultado vazio e as páginas de manual não contêm o termo. Não faz sentido usá-lo, mesmo que tenha sido documentado por causa de sua ambiguidade!

O que a mensagem poderia significar? Como eu poderia usá-lo para depurar o grande conjunto de outros erros altamente ambíguos, não intuitivos e inúteis e outras mensagens do SSH?

Karl Richter
fonte

Respostas:

22

Não é realmente uma mensagem de erro. É apenas uma mensagem de depuração informando que o servidor não aceita conexões móveis.

O roaming é aparentemente um recurso experimental adicionado ao OpenSSH em 2009, aproximadamente. O objetivo do recurso é permitir que um cliente ssh se desconecte de uma sessão do servidor e, em seguida, retome a sessão de outro local. Veja aqui algumas discussões sobre o assunto. Pesquisando ssh, roaming e "Martin Forssén", outras páginas serão exibidas. Não parece que está sendo desenvolvido ativamente. Eu suspeito que os desenvolvedores do SSH nunca o documentaram porque é experimental e talvez não tenha terminado.

Ao inspecionar o código fonte do OpenSSH, há uma opção não documentada do lado do cliente UseRoamingque pode ser configurada como sim ou não. Adicionar a linha "UseRoaming no" à configuração do seu cliente (normalmente seu .ssh/configarquivo) deve suprimir a mensagem de depuração.

Não me era óbvio por que a HostbasedAuthenticationconfiguração do servidor controlaria se o servidor aceita ou não conexões móveis.

Atualização: aparentemente, o suporte ao roaming do cliente está sujeito a um relatório de exposição à vulnerabilidade do computador, CVE-2016-0777 . As versões 5.4 a 7.1p1 do OpenSSH são vulneráveis. Os usuários devem atualizar para o OpenSSH 7.1p2 ou posterior. Os usuários que não puderem atualizar devem desativar o roaming no cliente adicionando "UseRoaming no" à configuração do cliente ssh. Veja o seguinte:

Kenster
fonte
7
Bem, agora é recomendado configurá-lo como não. mail-archive.com/[email protected]/msg144351.html
nikeee
1
@nikeee: ... e essa é uma história de advertência por não enviar stubs que não funcionem "inofensivos". (Note que você precisará configurá-lo para nono cliente configurações, não no servidor)
Piskvor
@Piskvor, mas há alguns devops / webops livros que se propagam fazendo isso ... eles poderiam estar todos errados? Oh.
Florian Heigl 14/01
melhor explicação sobre essa configuração na rede.
Nils petersohn
4

O changelog do openssh 5.3 no CentOS6 tem uma observação:

27/06/2009
     Adicionar opção de cliente UseRoaming. Ainda não faz nada, mas fará
     controlar se o cliente tenta usar o roaming, se ativado no
     servidor. De Martin Forssen.
Andrew Daviel
fonte
3

@ ILMostro_7 chmod 600 allowed_keys funcionou bem para mim.

Para o benefício de qualquer outra pessoa que chega aqui por googling "não entrar em roaming permitido pelo servidor", e está usando um cliente Linux (Ubuntu), você pode corrigir esse aviso e , em seguida, ver: -

Agent admitted failure to sign using the key

A solução é dada em https://help.github.com/articles/error-agent-admitted-failure-to-sign/

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    # Agent pid 59566 (displays process id)
    $ ssh-add
    # Enter passphrase for /home/you/.ssh/id_rsa: [tippy tap]
    # Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

'#' = comentário. você = seu nome de usuário. [tap tippy] = humo [u] r? = pressione a tecla Enter.

Espero que ajude alguém tanto quanto essas perguntas e respostas já me ajudou.

MartinRH
fonte
2

Essa mensagem de erro pode aparecer quando /etc/ssh/sshd_confignão estiver HostbasedAuthenticationdefinida yesno servidor.

Eu não tenho ideia do porquê.

Outra questão pode ser:

Verifique as permissões no diretório $ USER / .ssh, que deve pertencer ao usuário e ser chmod 700. O arquivo allowed_keys também deve ser chmod 700 e pertencer ao usuário

Nifle
fonte
700? Por que você precisaria de executepouco no arquivo-chave?
ILMostro_7 11/0315
De onde é a citação? Por favor, adicione uma referência.
Karl Richter
ILMostro_7 não, não é sobre o arquivo, é no diretório, e para que o usuário seja capaz de criar arquivos no diretório, a bandeira execução deve ser definido
IceyEC
@IceyEC A resposta sugere 700 para as autorizadas_keys .
Mdrozdziel
1
Deveria ser chmod 400. Não faço ideia por que eu desejaria que esse arquivo fosse executável; e o acesso de gravação também não é desejável 99,999% do tempo. sshdverifica se a .sshpasta do usuário não tem acesso para grupo e outro, e da mesma forma para .ssh/authorized_keys. Portanto, as permissões na resposta podem funcionar, mas são desnecessariamente amplas.
Piskvor