Cambiar el directorio de salida al recrear claves de host SSH con ssh-keygen (el modificador -f no impide que ssh-keygen escriba en /etc/ssh/)

Cambiar el directorio de salida al recrear claves de host SSH con ssh-keygen (el modificador -f no impide que ssh-keygen escriba en /etc/ssh/)

He estado intentando iniciar un proceso sshd adicional en una máquina remota. Creé un directorio de trabajo con el nuevo archivo de configuración sshd que me gustaría usar.

Cuando intento ejecutar sshd usando el archivo de configuración en este directorio, se queja de que no puede encontrar ninguna clave de host. Intenté crear claves de host faltantes ejecutando ssh-keygen -Ael -finterruptor para especificar la ubicación de mi directorio de trabajo, pero ssh-keygen continúa intentando colocar las claves en /etc/ssh/lugar del directorio que especifiqué. No tengo acceso a /etc/ssh, por lo que falla.

¿Cómo puedo generar estas claves sin acceso a esta ruta?

Respuesta1

La -Aopción indica ssh-keygengenerarclaves de host. Según la página del manual, el uso previsto ssh-keygenes

Normalmente , cada usuario que desee utilizar SSH con autenticación de clave pública ejecuta
esto una vez para crear la clave de autenticación en ~/.ssh/identity, o .
~/.ssh/id_ecdsa~/.ssh/id_dsa~/.ssh/id_rsaAdemás, el administrador del sistema puede utilizar esto para generar claves de host.

La sinopsis lo enumera -Aen una línea por sí solo, sin otras opciones:

SYNOPSIS
     ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment]
                [-f output_keyfile]
     ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
     ssh-keygen -i [-m key_format] [-f input_keyfile]
     ssh-keygen -e [-m key_format] [-f input_keyfile]
     ssh-keygen -y [-f input_keyfile]
     ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
     ssh-keygen -l [-f input_keyfile]
     ssh-keygen -B [-f input_keyfile]
     ssh-keygen -D pkcs11
     ssh-keygen -F hostname [-f known_hosts_file] [-l]
     ssh-keygen -H [-f known_hosts_file]
     ssh-keygen -R hostname [-f known_hosts_file]
     ssh-keygen -r hostname [-f input_keyfile] [-g]
     ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
     ssh-keygen -T output_file -f input_file [-v] [-a num_trials] [-K checkpt]
                [-W generator]
     ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals]
                [-O option] [-V validity_interval] [-z serial_number] file ...
     ssh-keygen -L [-f input_keyfile]
     ssh-keygen -A

Entonces (aparte de modificar la fuente y compilarla usted mismo), lo que está preguntando no es el uso previsto.

Otras lecturas:

Respuesta2

Según la página de manual a la que Thomas se vinculó, -fahora es compatible ssh-keygen -Ay especifica un prefijo para los archivos, por lo que parece que esta característica se agregó.

-A

Genere claves de host de todos los tipos de claves predeterminadas ( rsa, ecdsay ed25519) si aún no existen. Las claves de host se generan con la ruta del archivo de claves predeterminada, una frase de contraseña vacía, bits predeterminados para el tipo de clave y un comentario predeterminado. Si -ftambién se ha especificado, su argumento se utiliza como prefijo de la ruta predeterminada para los archivos de claves del host resultantes. Esto lo utiliza /etc/rcpara generar nuevas claves de host.

Notaque las etc/sshcarpetas deben existir en la carpeta de salida antes de ejecutarssh-keygen

$ mkdir -p output/etc/ssh

$ ssh-keygen -A -f output
ssh-keygen: generating new host keys: RSA ECDSA ED25519

$ ls output/etc/ssh/
ssh_host_ecdsa_key  ssh_host_ecdsa_key.pub  ssh_host_ed25519_key  ssh_host_ed25519_key.pub  ssh_host_rsa_key  ssh_host_rsa_key.pub

Respuesta3

Si tiene acceso a Docker, razón por la cual quería hacer esto, para crear una clave de host nueva y persistente que estaría fuera del contenedor, utilicé lo siguiente:

docker run -d --name get_host_keys lscr.io/linuxserver/openssh-server:latest
sleep 5
docker cp get_host_keys:/etc/ssh/. .
rm *config*
docker stop get_host_keys
docker rm get_host_keys

información relacionada