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
sknit
fuente
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.

encerrada dorada
fuente
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.

111 ---
fuente
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 .

slm
fuente
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.

Francisco Corrales Morales
fuente
o, por supuesto, puede especificar escribir la clave personalizada en la carpeta .ssh directamente:-f ~/.ssh/custom-key-name
parlamento