Segunda contraseña para acceso solo SSH

TL; DR : quiero tener una contraseña simple para desbloquear mi computadora con acceso físico y una contraseña compleja para conectarme a través de ssh. Esto, utilizando la misma cuenta.

Estoy buscando una solución para administrar el acceso a mi computadora. Para alguien que tiene acceso físico a mi computadora (como yo y un par de amigos míos que la usarán de vez en cuando), me gustaría tener una contraseña simple y corta que mantenga alejados a completos extraños. Sin embargo, me gustaría tener otra contraseña compleja para el servidor SSH, porque el servidor SSH estará disponible en la Internet pública de vez en cuando y tener una contraseña simple sería un gran riesgo para la seguridad.

He investigado la autenticación sin contraseña usando claves ssh, pero eso no es lo que estoy buscando, porque quiero poder acceder a mi computadora desde cualquier dispositivo. (Y según tengo entendido, mi computadora debería tener una lista de claves ssh confiables).

Entonces, idealmente, quiero tener una contraseña simple para desbloquear mi computadora con acceso físico y una contraseña compleja para conectarme a través de ssh.

Respuestas (2)

Creo que la solución real es crear una cuenta que no sea de administrador a la que se pueda acceder a través de ssh (presumiblemente, la cuenta que desea usar a través del acceso físico tendrá privilegios de sudo). La cuenta ssh realmente no debería tener nada ni poder hacer nada más que permitir que un usuario inicie sesión. Luego, puede pasar sude ese usuario a la cuenta real que desea usar, lo que le brindará una capa adicional de seguridad y un mejor inicio de sesión con respecto a quién está accediendo al sistema (o tratando de hacerlo)

Si bien no es estrictamente relevante para la pregunta en cuestión: también sugiero cambiar su puerto ssh del 22 (o cualquier puerto conocido). Un número alto cerca de 5000 está fuera del camino de muchos script kiddies y reducirá drásticamente la cantidad de intentos de inicio de sesión que obtiene
¡Me gusta esta solución! :) ¿Alguna posibilidad de restringir todos los accesos para esta cuenta ssh, excepto para ejecutar su?
Puedes hacerlo realmente tan restringido como quieras. Cuánto quieres trabajar para hacer eso depende de ti. Si fuera yo, me aseguraría de que no tuviera acceso a Sudo. Podría ir tan lejos como para restringir el acceso a /usr/bin o cambiar la RUTA, si quisiera

No es exactamente lo que describes, pero debería resolver tus problemas. La herramienta se llama "autorización de paquete único" y una implementación muy buena con descripción es fwknop .

Si tiene una computadora con IP accesible desde Internet, es muy común ver muchos intentos de autenticación en SSH y es muy útil para proteger el servicio de alguna manera. Esconderse es un buen enfoque. Fwknop básicamente le permitirá desbloquear el sshpuerto para una dirección específica desde su teléfono móvil (por ejemplo) y luego podrá conectarse usando su contraseña relativamente simple sin exponerla al mundo.


Si es demasiado complicado, siempre puede configurar dos usuarios:

  • local:
    • con contraseña sencilla
    • denegado para iniciar sesión de forma remota
  • remoto:
    • contraseña compleja
    • inicio de sesión remoto permitido usando AllowUsersla opción ensshd_config

y configure sudola transición del remoto al local (ya sea automática o manualmente) para entrar en el mismo "contexto" que con sus inicios de sesión locales.