bash: /home/user/.ssh/authorized_keys: aucun fichier ou répertoire de ce type


30

Créez une clé ssh:
Commande:

ssh-keygen -t rsa –P ""

Déplacer la clé vers la clé autorisée:
Commande:

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory

1
~/.ssh/authorized_keyssont des clés d'autres ordinateurs auxquels vous vous êtes connecté / en qui vous avez confiance, pas votre propre clé.
saiarcot895

Certaines applications nécessitent un ssh sans mot de passe sur sa propre machine.
Nehal J Wani

Veuillez ne pas publier la même question sur plusieurs sites du réseau Stack Exchange.
terdon

Pourquoi devez-vous faire confiance à la clé que vous possédez? Qu'essayez-vous exactement de faire?
Braiam

Réponses:


74

Vous devez créer le .sshrépertoire et le authorized_keysfichier la première fois.

  1. Créez le .sshrépertoire:

    mkdir ~/.ssh
    
  2. Définissez les bonnes autorisations:

    chmod 700 ~/.ssh
    
  3. Créez le authorized_keysfichier:

    touch ~/.ssh/authorized_keys
    
  4. Définissez les bonnes autorisations:

    chmod 600 ~/.ssh/authorized_keys
    

Les autorisations sont importantes! Cela ne fonctionnera pas sans les bonnes autorisations!

Vous pouvez maintenant ajouter la clé publique au authorized_keysfichier:

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

Vous devez ajouter la clé publique de votre ordinateur au authorized_keysfichier de l' ordinateur auquel vous souhaitez accéder en utilisant les clés SSH !


Comme Terdon l'a mentionné, vous pouvez également utiliser cette commande:

ssh-copy-id user@host

Cela mettra votre id_rsa.pub(dans votre ~/.sshrépertoire) dans le authorized_keysfichier de l'ordinateur distant , créant le .sshrépertoire et le authorized_keysfichier avec les bonnes autorisations si nécessaire.


5
En tout cas, vous ne voulez pas juste cat, c'est pour ça ssh-copy-id.
terdon

1
Wow, cool, je l'ai ajouté.
Louis Matthijssen

@LouisMatthijssen J'ai copié les clés de mon serveur distant. Comment puis-je confirmer que la clé publique est ajoutée dans les clés autorisées.
Aman

2

Dans le cas où vous avez reçu la clé publique dans un e-mail à installer sur un serveur distant:

1) SSH dans le serveur. J'ai utilisé PuTTY sur Windows.

2) Configurez la clé:

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

Prenez soin de copier la clé exactement et de la coller dans une nouvelle ligne dans la fenêtre de l'éditeur. Vérifiez qu'il occupe une seule ligne et enregistrez.

chmod 600 ~/.ssh/authorized_keys

2

Comme je n'ai pas assez de réputation, j'ajoute ceci ici. En plus de la réponse de Louis Matthijssen si vous ne pouvez toujours pas vous connecter via ssh en tant qu'utilisateur que vous avez créé, comme

ssh username@host

cela peut être dû à l'absence d' autorisation du propriétaire que vous devez ajouter à votre dossier /home/username/.ssh. J'ai eu le même problème et vous pouvez donner cette autorisation en tant que:

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

Cela peut probablement se produire simplement parce que vous créez le répertoire et définissez les autorisations en tant que root , mais pas en tant que nom d' utilisateur avec lequel vous souhaitez accéder au serveur.

J'espère que cela aide quelqu'un.


0

essayer

 touch $HOME/.ssh/authorized_keys

pour créer un fichier vide avec les droits de cet utilisateur.

Ce fichier est créé lorsque vous accédez pour la première fois à un hôte distant avec cet utilisateur.


0

Cela peut également échouer si, lors de la création de la clé avec ssh-keygen, vous lui donnez un nom de fichier. J'ai entré un nom my-ssh-file-nameet il a écrit la clé au /Users/MyUserNamelieu du .sshdossier. Si vous laissez le nom de fichier vide, il sera écrit .sshcomme prévu.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.