El acceso ssh con certificado privado funciona desde localhost y no desde remoto

El acceso ssh con certificado privado funciona desde localhost y no desde remoto

Soy un novato en Gnu/Linux y UNIX. Estoy jugando un juego para aprender los conceptos básicos de este sistema operativo.

Como parte del juego que estoy jugando, tengo que iniciar sesión en un servidor remoto usando ssh, teniendo solo el certificado de clave privada y el nombre de usuario (sin contraseña).

  • Si inicio sesión usando SSH desde la máquina remota (donde inicié sesión con otro nombre de usuario), puedo acceder sin ninguna contraseña.
  • Si intento iniciar sesión desde mi máquina local, SSH me pide una contraseña.

¿Es esto la consecuencia de una configuración SSH del servidor al que intento acceder?
Quiero decir, ¿SSH puede aplicar una política de inicio de sesión diferente si inicio sesión desde el host local (en este caso, el servidor) y si inicio sesión desde una máquina remota (en este caso, mi PC)?

Muchas gracias.
Atentamente.

Respuesta1

¿Es esto la consecuencia de una configuración SSH del servidor al que intento acceder?

Según los detalles que compartió, no podemos estar seguros. Es posible que incluso se esté conectando a dos demonios SSH distintos y configurados de forma independiente que se ejecutan en el mismo sistema.

Quiero decir, ¿SSH puede aplicar una política de inicio de sesión diferente si inicio sesión desde localhost (en este caso, el servidor) y si inicio sesión desde una máquina remota (en este caso, mi PC)?

Sí, los servidores SSH pueden aplicar diferentes políticas basadas en diversas propiedades de las conexiones entrantes.

Por ejemplo, la Matchpalabra clave en sshdla configuración de OpenSSH le permite definir bloques condicionales que agrupan directivas que solo se aplican (y anulan las establecidas previamente) si se cumple una lista de condiciones específicas (consulte, para más detalles,man 5 sshd_config).

Agregar este bloque a /etc/ssh/sshd_config(la ubicación exacta puede variar, dependiendo de su sistema):

PubkeyAuthentication yes

Match Address "!127.0.0.1,!::1,*"
    PubkeyAuthentication no

dará instrucciones sshdpara:

  • permitir la autenticación de clave pública de forma predeterminada;
  • no permitir la autenticación de clave pública para conexiones provenientes de direcciones distintas a 127.0.0.1y ::1.

(Nota para aliviar el dolor de cabeza: como se indica enman 5 ssh_config, "PATRONES",

[...] un partido anulado nunca producirá por sí solo un resultado positivo. [...] La solución aquí es incluir un término que produzca una coincidencia positiva, como un comodín [...]

por eso "!127.0.0.1,!::1,*"incluye a *al final).

información relacionada