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

30

Cree una clave ssh:
Comando:

ssh-keygen -t rsa –P ""

Mover la clave a la clave autorizada:
Comando:

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory
usuario282060
fuente
1
~/.ssh/authorized_keysson claves de otras computadoras a las que se conectó / confía, no su propia clave.
saiarcot895
Algunas aplicaciones requieren ssh sin contraseña para la propia máquina.
Nehal J Wani
No publique la misma pregunta en varios sitios de la red de Stack Exchange.
terdon
¿Por qué necesita confiar en la clave que posee? ¿Exactamente qué estás tratando de hacer?
Braiam

Respuestas:

74

Tienes que crear el .sshdirectorio y el authorized_keysarchivo la primera vez.

  1. Crea el .sshdirectorio:

    mkdir ~/.ssh
    
  2. Establezca los permisos correctos:

    chmod 700 ~/.ssh
    
  3. Crea el authorized_keysarchivo:

    touch ~/.ssh/authorized_keys
    
  4. Establezca los permisos correctos:

    chmod 600 ~/.ssh/authorized_keys
    

Los permisos son importantes! ¡No funcionará sin los permisos correctos!

Ahora puede agregar la clave pública al authorized_keysarchivo:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

¡Debe agregar la clave pública de su computadora al authorized_keysarchivo de la computadora a la que desea acceder utilizando SSH Keys !


Como mencionó Terdon, también puede usar este comando:

ssh-copy-id user@host

Esto colocará su id_rsa.pub(en su ~/.sshdirectorio) en el authorized_keysarchivo de la computadora remota , creando el .sshdirectorio y el authorized_keysarchivo con los permisos correctos si es necesario.

Louis Matthijssen
fuente
55
En cualquier caso, no quieres simplemente cateso, para eso ssh-copy-idestá.
terdon
1
Wow, genial, lo he agregado.
Louis Matthijssen
@LouisMatthijssen He copiado claves en mi servidor remoto. ¿Cómo puedo confirmar que la clave pública se agrega en autorizado_claves?
Aman
2

En caso de que se le haya enviado la clave pública en un correo electrónico para instalar en un servidor remoto:

1) SSH en el servidor. Usé PuTTY en Windows.

2) Configurar la clave:

mkdir ~/.ssh
chmod 700 ~/.ssh
vi ~/.ssh/authorized_keys

Tenga cuidado de copiar la clave exactamente y pegarla en una nueva línea en la ventana del editor. Verifique que ocupe una sola línea y guarde.

chmod 600 ~/.ssh/authorized_keys
KalenGi
fuente
2

Como no tengo suficiente reputación, estoy agregando esto aquí. Además de la respuesta de Louis Matthijssen si aún no puede iniciar sesión a través de ssh como usuario que ha creado, como

ssh username@host

entonces esto puede deberse a la ausencia de permiso del propietario que debe agregar a su carpeta /home/username/.ssh. Tuve el mismo problema y puedes dar este permiso como:

chown -R username:username /home/username/.ssh

Esto probablemente puede suceder simplemente porque estaba creando el directorio y configurando los permisos como root , pero no como el nombre de usuario con el que desea acceder al servidor.

Espero que esto ayude a alguien.

Shivam Sharma
fuente
0

tratar

 touch $HOME/.ssh/authorized_keys

para crear un archivo vacío con los derechos de ese usuario.

Este archivo se crea cuando accede por primera vez a un host remoto con ese usuario.

DGA
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