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
user282060
la source
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.

Louis Matthijssen
la source
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
KalenGi
la source
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.

Shivam Sharma
la source
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.

DGA
la source
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.

Francisco Corrales Morales
la source