¿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?

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:


77
Bueno, ahora se recomienda establecerlo en no. mail-archive.com/misc@openbsd.org/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.

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.


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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.