Las claves SSH recién creadas aterrizaron en mi carpeta de inicio en lugar de la carpeta `.ssh` después de crear con `ssh-keygen`

Usé la ssh-keygenutilidad incluida con High Sierra para crear claves, como se indica en el título de esta página Cómo crear claves SSH con OpenSSH en Linux o macOS en DigitalOcean.com.

Curiosamente, el mensaje para guardar el nuevo archivo de claves indicaba la .ssh/id_rsacarpeta. Sin embargo, las nuevas claves se encontraron en mi carpeta de inicio.

Aquí está mi sesión, reemplazando un par de cosas con blah_blah_blah.

Ingresé un nombre de archivo de acme. El par de archivos llamados acme& acme.pubse guardaron en mi carpeta de inicio de /Users/basilbourque, no .ssh.

MacBook-Pro:~ basilbourque$ which ssh-keygen
/usr/bin/ssh-keygen
MacBook-Pro:~ basilbourque$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/basilbourque/.ssh/id_rsa): acme
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in acme.
Your public key has been saved in acme.pub.
The key fingerprint is:
SHA256:blah_blah_blah basilbourque@MacBook-Pro.local
The key's randomart image is:
blah_blah_blah

➥ ¿Alguna idea de por qué se ignoró la ruta de destino indicada en el aviso?

Un posible problema: no hay ninguna id_rsacarpeta anidada en mi .sshcarpeta, solo known_hostsse encuentra un archivo allí.

Pregunto por dos razones:

  • Mera curiosidad.
    • ¿Por qué la ssh-keygenutilidad mostraría una ruta en el indicador si va a ignorar esa ruta?
    • ¿ Por qué la ssh-keygenutilidad mostraría una ruta a una carpeta inexistente?
  • Me pregunto si esto hará que la herramienta de conexión ssh no pueda encontrar y utilizar las claves para iniciar sesión en una nueva sesión de conexión ssh.

¿Hay algún lugar donde deba mover estas claves para que la herramienta de conexión ssh las encuentre? (Soy nuevo en el uso de ssh.)

Respuestas (1)

Se le solicita un nombre de archivo, no un nombre de carpeta ( Enter **file** in which to save the key). Entonces, si solo responde con un nombre de archivo, las claves se almacenarán (con ese nombre) en el directorio actual. Simplemente puede moverlos .ssh/manualmente si es necesario. Probablemente también necesite decirle a ssh que use sus claves en lugar de las predeterminadas (o cambie el nombre de sus claves al nombre predeterminado).

(A) Ingresé un nombre de archivo, acmeen el texto que se ve en mi Pregunta. ¿Por qué está esta ruta /Users/basilbourque/.ssh/id_rsaen la solicitud del nombre del archivo si las claves aterrizarán en el directorio actual? ¿Y por qué una ruta a una carpeta inexistente? (B) No tengo idea de lo que podría querer decir con un nombre predeterminado o una clave predeterminada. Eso no tiene sentido para mí, ya que una persona podría estar ingresando a cualquier cantidad de servidores diferentes, cada uno con una clave diferente.
@BasilBourque Solicita un archivo, no una carpeta.
@BasilBourque Lea cómo funciona ssh. Usted crea un par de claves para su computadora y copia la clave pública en el archivo authorized_keys en las máquinas en las que desea iniciar sesión. Al menos para operaciones simples, no es necesario crear varios pares de claves en la misma máquina.
Porque /Users/[USERNAME]/.ssh/id_rsa es el nombre y la ruta predeterminados para su archivo de ID. Al igual que guardar en muchos otros programas sugiere un nombre y una ubicación, ssh_keygen intenta guardar su ID como archivo "id_rsa" en la carpeta /Users/[USERNAME]/.ssh
Si le da un nombre diferente y no incluye la ruta, se guarda en el directorio actual. Ingresó "acme", no "/Users/basilbourque/.ssh/acme"