Lanzador Productos Bitnami Documentaciónimaxe CLI Blog Contacto
imaxe ssh acceso v1.0.0

El acceso SSH, bajo control

Administra el acceso remoto de tu servidor sin editar ficheros a mano: claves autorizadas, host keys, sesiones activas y el hardening de sshd, todo con comprobación de la configuración antes de recargar.

$ imaxe ssh status
Versión
v1.0.0
Subcomandos
10
Config
/etc/imaxe/ssh.yml
Requiere root
Usuario gestionado
ubuntu

Qué hace este módulo #

SSH es la puerta de entrada a tu servidor: el canal cifrado por el que te conectas para administrarlo. Que esa puerta esté bien puesta —con las llaves adecuadas y sin cerraduras de más— es lo que separa un servidor seguro de uno expuesto.

El módulo ssh reúne en un solo comando las tareas de ese acceso remoto: gestiona las claves autorizadas del usuario (añadir, listar, quitar), controla las host keys con las que el servidor se identifica ante los clientes, muestra las sesiones activas y comprueba o reaplica el hardening de sshd definido en tu configuración. Cada operación que toca sshd valida antes la configuración (sshd -t) para que un cambio equivocado no te deje fuera.

Antes de empezar

Ten a mano una sesión abierta mientras cambias claves o reinicias sshd: así, si algo sale mal, sigues dentro para corregirlo. El módulo trabaja por defecto sobre el usuario gestionado ubuntu; usa --user para operar sobre otro.

Guía rápidatareas paso a paso

Tareas comunes #

Elige lo que quieres hacer. Cada receta trae el comando ya escrito — solo cambia el usuario o la clave por los tuyos, y pulsa Copiar.

1

Ver el estado del acceso SSH

Comprueba de un vistazo que sshd está activo y bien configurado.

Conéctate por SSH a tu servidor con el usuario ubuntu y lanza:

terminal
$ sudo imaxe ssh status

¿Lo necesitas para un script? Añade --json y obtendrás la misma información legible por máquina:

terminal
$ sudo imaxe ssh status --json
Verás si sshd está activo, en qué puerto escucha y un resumen del hardening aplicado.
2

Añadir o quitar una clave autorizada

Da acceso a una nueva máquina o revoca una que ya no uses.

Primero mira qué claves están autorizadas ahora mismo para el usuario gestionado:

terminal
$ sudo imaxe ssh keys list

Añade una clave pública pasándola como argumento (o usa - para leerla de la entrada estándar):

terminal
$ sudo imaxe ssh keys add "ssh-ed25519 AAAAC3Nz... ana@portatil" --comment "ana@portatil"

¿Ya no la necesitas? Quítala por su fingerprint o por su comentario:

terminal
$ sudo imaxe ssh keys remove "ana@portatil"
El authorized_keys del usuario queda actualizado. Comprueba el resultado con keys list.
3

Regenerar las host keys tras clonar

Imprescindible después de crear una máquina a partir de una AMI.

Cuando clonas una imagen, todas las copias heredan la misma identidad de servidor. Genera unas host keys nuevas y únicas para esta máquina:

terminal
$ sudo imaxe ssh hostkeys regenerate --yes
El servidor estrena identidad propia. Ojo: el fingerprint cambia, así que la primera reconexión de cada cliente pedirá aceptarlo de nuevo.
4

Revisar y reaplicar el hardening

Comprueba que sshd sigue configurado como debe y corrígelo si no.

Compara el hardening actual con el deseado (el que define tu configuración):

terminal
$ sudo imaxe ssh harden show

¿Hay diferencias? Reaplica el hardening desde el YAML y recarga sshd de forma segura:

terminal
$ sudo imaxe ssh harden reapply
La configuración vuelve al estado deseado (sin root por SSH, sin contraseñas, solo clave pública) y sshd se recarga sin cortar tu sesión.
5

Ver sesiones y reiniciar sshd

Mira quién está conectado y aplica cambios sin miedo a quedarte fuera.

Lista las sesiones SSH activas en este momento:

terminal
$ sudo imaxe ssh sessions

Para aplicar cambios de configuración, prefiere reload (no corta conexiones); usa restart solo si hace falta un reinicio completo. Ambos validan la configuración antes:

terminal
$ sudo imaxe ssh reload
$ sudo imaxe ssh restart
Si la configuración es inválida, la operación se detiene antes de aplicarla — tu acceso queda intacto.
Cuidado con quedarte fuera

Antes de reiniciar sshd o cambiar el puerto, mantén abierta una segunda sesión de emergencia. Si al reconectar aparece un aviso de host key distinta tras un hostkeys regenerate, es esperado: acepta la nueva identidad.

Referencia CLIcomandos, flags y ficheros

Sinopsis #

uso
imaxe ssh <subcomando> [<subcomando-anidado>] [argumentos] [flags]

Las operaciones que leen o modifican sshd, las claves autorizadas o las host keys requieren privilegios de root (usa sudo). Los grupos keys, hostkeys y harden agrupan sus propios subcomandos anidados. Añade --json a status, sessions, keys list o harden show para obtener salida apta para scripting.

Subcomandos #

SubcomandoQué haceFlags relevantes
statusEstado de sshd: activo, puerto y resumen del hardening.--json
keys listLista las claves autorizadas del usuario gestionado.--user, --json
keys addAñade una clave pública (desde argumento o stdin).--user, --comment
keys removeQuita una clave por fingerprint o comentario.--user
hostkeys regenerateRegenera las host keys (crítico tras clonar una AMI; cambia el fingerprint).--yes
sessionsLista las sesiones SSH activas.--json
harden showMuestra el hardening actual frente al deseado.--json
harden reapplyReaplica el hardening desde el YAML y recarga sshd.
restartReinicia sshd validando antes la configuración (sshd -t).
reloadRecarga sshd validando antes la configuración (sshd -t).

Argumentos y flags #

Argumento / FlagTipoPor defectoDescripción
<clave> req.stringEn keys add: la clave pública, o - para leerla de stdin.
<selector> req.stringEn keys remove: fingerprint (SHA256:...) o comentario de la clave a quitar.
--userstringubuntuUsuario cuyo authorized_keys se consulta o modifica (en keys list/add/remove).
--commentstringEn keys add: comentario que se asocia a la clave para identificarla luego.
--yesboolfalseEn hostkeys regenerate: confirma sin preguntar (cambia el fingerprint visible a los clientes).
--jsonboolfalseEn status, sessions, keys list y harden show: emite el resultado como JSON en stdout.

Ficheros y rutas #

RutaContenido
/etc/imaxe/ssh.ymlConfiguración del módulo: puerto, políticas de login (root, contraseña, clave pública), usuarios permitidos, usuario gestionado y regeneración de host keys.
/home/<usuario>/.ssh/authorized_keysClaves públicas autorizadas del usuario gestionado que keys add/remove modifican.
/etc/ssh/sshd_config.d/Fragmentos de configuración de sshd donde se aplica el hardening.
/etc/ssh/ssh_host_*_keyHost keys que identifican al servidor y que hostkeys regenerate renueva.

Ejemplo de ssh.yml:

/etc/imaxe/ssh.yml
port: 22
permit_root_login: "no"
password_authentication: "no"
pubkey_authentication: "yes"
allow_users: []
managed_user: ubuntu
hostkeys:
  regenerate_on_first_boot: true

Códigos de salida y logs #

Cada ejecución devuelve un código que puedes comprobar con echo $? — útil para encadenar en scripts:

0OKOperación completada correctamente.
1ERRError genérico no clasificado. Revisa el log.
2USAGEArgumentos inválidos o faltantes.
3CONFIGLa validación de sshd -t falló; no se aplicó nada.
4NOTFOUNDClave o usuario no encontrados.
5RELOADCambio aplicado pero falló la recarga de sshd.

Sigue el log del servicio en vivo mientras depuras:

terminal
$ sudo journalctl -u ssh -f
$ sudo imaxe ssh harden show --json

Resolución de problemas #

SíntomaCausa probableSolución
Sale CONFIG (código 3)El hardening o un cambio manual dejaron sshd con una configuración inválida.Revisa el diff con imaxe ssh harden show y corrige; la validación evita aplicar un config roto.
Al reconectar, aviso de host key distintaSe regeneraron las host keys (esperado tras clonar una AMI).Es normal: acepta la nueva identidad en el cliente y actualiza tu known_hosts.
keys add devuelve NOTFOUND (código 4)El usuario indicado en --user no existe en el sistema.Comprueba el nombre de usuario o usa el gestionado por defecto (ubuntu).
Ya no puedo entrar con contraseñapassword_authentication está en "no" por el hardening.Es intencionado: entra con clave pública y gestiónalas con imaxe ssh keys.

¿Te atascaste con el módulo SSH?

Escríbenos con la salida de «imaxe <módulo> status --json» y te respondemos rápido.

Contactar con soporte