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

11

Créez une clé ssh:

$ ssh-keygen -t rsa P ""

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

$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

bash: /home/user/.ssh/authorized_keys: No such file or directory
sknit
la source
Même question, pourquoi vous devez ajouter la clé à votre propre hôte?
Braiam
@Braiam Je l'ai fait lorsque mon répertoire personnel se trouvait sur le lecteur réseau. Cela m'a permis de passer à n'importe quelle machine qui montait ce lecteur. Donc je ne battais pas pour mon propre hôte.
FDinoff

Réponses:

13
bash: /home/user/.ssh/authorized_keys: No such file or directory

Un élément du chemin /home/user/.ssh/n'existe pas; le shell ( bash) vérifie la redirection ( >>) avant d'exécuter la commande ( cat). Si /home/userexiste et vous essayez ceci:

cat $HOME/.ssh/id_rsa.pub >> $HOME/test_this

Vous obtiendrez maintenant:

cat: /home/user/.ssh/id_rsa.pub: No such file or directory

Étant donné que ce fichier ne peut pas être à cet endroit, s'il /home/user/.ssh/n'existait pas au départ.

Vous suivez certaines instructions après avoir peut-être ignoré certains bits. Pour créer le répertoire:

mkdir $HOME/.ssh
chmod 700 $HOME/.ssh

Cependant, id_rsa.pubne sera pas là. Ce sera là où vous avez exécuté la ssh-keygencommande en premier lieu.

boucle d'or
la source
6

Assurez-vous que vous êtes connecté en tant qu'utilisateur pour lequel vous souhaitez créer la clé ssh en premier (ou soyez prêt à modifier les chemins d'accès de la commande vers le répertoire de base correct).

Ensuite, créez simplement le répertoire:

mkdir ~/.ssh

Créez le fichier à l'aide de la catcommande que vous avez répertoriée ci-dessus. N'oubliez pas de définir correctement les autorisations:

chmod 400 ~/.ssh/authorized_keys

Vous voudrez peut-être vous assurer que le répertoire .ssh dispose également des autorisations appropriées.

111 ---
la source
1
Comme votre dernier commentaire l'indique, oui, je trouve que vous en avez besoinchmod 700 ~/.ssh
KCD
6

Si possible, j'encourage toujours les gens à utiliser l'outil de ligne de commande ssh-copy-id.

$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine

Si vous souhaitez simplement copier votre clé publique SSH par défaut sur un serveur distant, exécutez simplement la commande suivante:

$ ssh-copy-id user@remoteserver

Je montre un exemple complet réel de la façon d'utiliser cet outil dans cette Q&R intitulée: Impossible de partager une connexion ssh avec rsync .

slm
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é à la /Users/MyUserNameplace du .sshdossier. Si vous laissez le nom de fichier vide, il sera écrit .sshcomme prévu.

Francisco Corrales Morales
la source
ou bien sûr, vous pouvez spécifier d'écrire directement la clé personnalisée dans le dossier .ssh:-f ~/.ssh/custom-key-name
parlement