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

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.


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

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.


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.


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.

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.