¿Qué podría significar 'Roaming no permitido por el servidor' del cliente ssh?

25

No puedo conectarme a una instancia de servidor SSH y la salida detallada contiene debug1: Roaming not allowed by server. Surgen los siguientes problemas predecibles y evitables:

  • Roaming significa acceder a servicios desde diferentes tipos de redes. No puedo entender lo que podría significar en el contexto de la salida detallada de un sshcliente 6.6.1 que se ejecuta en Ubuntu 14.04.
  • No está claro si esto es un error o no y si es si está causando la falla del inicio de sesión o no (sin embargo, no quiero sumergirme en la falla de conexión aquí; ninguno de los mensajes de salida de sshBTW lo hace -> más problemas y pérdida de tiempo: ¡ya has sido advertido!)
  • Hice una consulta site:www.openssh.org roamingen Google con un resultado vacío y las páginas de manual no contienen el término. ¡No tiene sentido usarlo incluso si fue documentado debido a su ambigüedad!

¿Qué podría significar el mensaje? ¿Cómo podría usarlo para depurar el gran conjunto de otros errores altamente ambiguos, poco intuitivos e inútiles y otros mensajes de SSH?

Karl Richter
fuente

Respuestas:

22

No es realmente un mensaje de error. Es solo un mensaje de depuración que le indica que el servidor no acepta conexiones móviles.

El roaming es aparentemente una característica experimental agregada a OpenSSH en 2009 más o menos. El propósito de la función es permitir que un cliente ssh se desconecte de una sesión del servidor y luego reanude la sesión desde otra ubicación. Vea aquí para una discusión al respecto. Buscar en Google ssh, roaming y "Martin Forssén" aparecerán en otras páginas. No parece que se esté desarrollando activamente. Sospecho que los desarrolladores de SSH nunca lo documentaron porque es experimental y quizás no esté terminado.

Al inspeccionar el código fuente de OpenSSH, hay una opción del lado del cliente no documentada UseRoamingque se puede establecer en sí o no. Agregar la línea "UseRoaming no" a la configuración de su cliente (normalmente su .ssh/configarchivo) debería suprimir el mensaje de depuración.

No era obvio para mí por qué la HostbasedAuthenticationconfiguración del lado del servidor controlaría si el servidor aceptaba o no las conexiones móviles.

Actualización: El soporte de roaming del cliente aparentemente es el tema de un informe de exposición de vulnerabilidad de la computadora, CVE-2016-0777 . Las versiones de OpenSSH 5.4 a 7.1p1 son vulnerables. Los usuarios deben actualizar a OpenSSH 7.1p2 o posterior. Los usuarios que no pueden actualizar deben deshabilitar el roaming en el cliente agregando "UseRoaming no" a la configuración de su cliente ssh. Ver lo siguiente:

Kenster
fuente
77
Bueno, ahora se recomienda establecerlo en no. mail-archive.com/[email protected]/msg144351.html
nikeee
1
@nikeee: ... y esa es una historia de advertencia para no enviar trozos "inofensivos" que no funcionan. (Tenga en cuenta que debe configurarlo noen la configuración del cliente , no en el servidor)
Piskvor
@Piskvor, pero hay bastantes libros de devops / webops que se propagan haciendo eso ... ¿podrían estar todos equivocados? Oh.
Florian Heigl
La mejor explicación sobre esta configuración en la red.
nils petersohn
4

El registro de cambios de openssh 5.3 en CentOS6 tiene una nota:

27/06/2009
     Agregar opción de cliente UseRoaming. Todavía no hace nada pero lo hará
     controle si el cliente intenta utilizar el roaming si está habilitado en el
     servidor. De Martin Forssen.
Andrew Daviel
fuente
3

@ ILMostro_7 chmod 600 certified_keys funcionó bien para mí.

Para el beneficio de cualquier otra persona que llegue aquí buscando en Google "Roaming no permitido por el servidor", y está utilizando un cliente Linux (Ubuntu), puede corregir esa advertencia y luego ver:

Agent admitted failure to sign using the key

La cura para eso se da en 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)

'#' = comentario. usted = su-nombre de usuario. [tippy tap] = humo [u] r? = presione la tecla Enter.

Espero que eso ayude a alguien tanto como estas preguntas y respuestas ya me ayudaron.

MartinRH
fuente
2

Este mensaje de error puede aparecer cuando /etc/ssh/sshd_configno está HostbasedAuthenticationconfigurado yesen el servidor.

No tengo ni idea de porqué.

Otro problema puede ser:

Verifique los permisos en el directorio $ USER / .ssh que debe ser propiedad del usuario y ser chmod 700. El archivo autorizado_keys también debe ser chmod 700 y propiedad del usuario

Nifle
fuente
700? ¿Por qué necesitarías executebit en el archivo de claves?
ILMostro_7
¿De dónde es la cita? Por favor agregue una referencia.
Karl Richter
ILMostro_7 no está en el archivo, está en el directorio, y para que el usuario pueda crear archivos en el directorio, se debe establecer el indicador de ejecución
IceyEC
@IceyEC La respuesta sugiere 700 para authorized_keys .
mdrozdziel
1
Debe ser chmod 400. No tengo idea de por qué querría que ese archivo sea ejecutable; y el acceso de escritura tampoco es deseable el 99.999% del tiempo. sshdcomprueba que la .sshcarpeta del usuario no tenga acceso para grupo y otros, y de la misma manera para .ssh/authorized_keys. Por lo tanto, las permanentes en la respuesta podrían funcionar, pero son innecesariamente amplias.
Piskvor