bash: /home/user/.ssh/authorized_keys: No existe tal archivo o directorio


11

Crea una clave ssh:

$ ssh-keygen -t rsa P ""

Mover la clave a la clave autorizada:

$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

bash: /home/user/.ssh/authorized_keys: No such file or directory

La misma pregunta, ¿por qué necesita agregar la clave a su propio host?
Braiam

@Braiam He hecho esto cuando mi directorio de inicio estaba en la unidad de red. Esto me permitió hacer ssh a cualquier máquina que montara esta unidad. Así que no le estaba hablando a mi propio anfitrión.
FDinoff

Respuestas:


13
bash: /home/user/.ssh/authorized_keys: No such file or directory

Un elemento del camino /home/user/.ssh/no existe; el shell ( bash) verifica la redirección ( >>) antes de ejecutar el comando ( cat). Si /home/userexiste e intentas esto:

cat $HOME/.ssh/id_rsa.pub >> $HOME/test_this

Ahora obtendrás:

cat: /home/user/.ssh/id_rsa.pub: No such file or directory

Dado que ese archivo no puede estar en ese lugar, si /home/user/.ssh/no existiera para empezar.

Estás siguiendo algunas instrucciones que posiblemente hayan omitido algunos bits. Para crear el directorio:

mkdir $HOME/.ssh
chmod 700 $HOME/.ssh

Sin embargo, id_rsa.pubno estará allí. En ssh-keygenprimer lugar , será donde ejecutaste el comando.


6

Asegúrese de haber iniciado sesión como el usuario para el que desea crear la clave ssh primero (o esté preparado para modificar las rutas en el comando al directorio de inicio correcto).

Luego solo crea el directorio:

mkdir ~/.ssh

Cree el archivo con el catcomando que ha enumerado anteriormente. Entonces no olvide establecer los permisos correctamente:

chmod 400 ~/.ssh/authorized_keys

Es posible que desee asegurarse de que el directorio .ssh también tenga los permisos adecuados.


1
Como su último comentario implica, sí, creo que necesita hacerlochmod 700 ~/.ssh
KCD

6

Si es posible, siempre animo a las personas a usar la herramienta de línea de comandos ssh-copy-id.

$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine

Si solo desea copiar su clave pública SSH predeterminada en un servidor remoto, simplemente ejecute el siguiente comando:

$ ssh-copy-id user@remoteserver

Muestro un ejemplo completo real de cómo usar esta herramienta en este Q&A titulado: No se puede compartir una conexión ssh con rsync .


0

Esto también puede fallar si, al crear la clave con ssh-keygen, le da un nombre de archivo. Ingresé un nombre my-ssh-file-namey escribió la clave en /Users/MyUserNamelugar de la .sshcarpeta. Si deja el nombre del archivo en blanco, se escribirá .sshcomo se esperaba.


o, por supuesto, puede especificar escribir la clave personalizada en la carpeta .ssh directamente:-f ~/.ssh/custom-key-name
parlamento
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.