web-dev-qa-db-fra.com

sshfs avec fstab: connexion réinitialisée par un homologue

J'essaie de permettre à mon ordinateur portable (Ubuntu 13.04) d'accéder au disque dur de mon ordinateur (Lubuntu 13.04) via SSHFS. J'utilise des clés RSA pour me connecter.

Cela fonctionne parfaitement si je tape ceci dans le terminal:

sshfs my-PC:/a_folder /media/a_folder

Mais je voudrais qu'il soit monté automatiquement lorsque je démarre mon ordinateur portable. Alors je me suis ajouté au groupe Fuse:

Sudo adduser mynickname Fuse

Et j'ai ajouté la ligne suivante à mon fichier fstab:

sshfs#mynickname@my-PC:/a_folder /media/a_folder Fuse defaults,idmap=user,_netdev 0 0

Lorsque je lance l'ordinateur portable, un dossier apparaît dans la liste des périphériques, mais n'est pas monté. Lorsque j'essaie d'y accéder via Nautilus, l'erreur suivante s'affiche:

mount: only root can mount sshfs#mynickname@my-PC:/a_folder on /media/a_folder

J'obtiens la même erreur si j'essaie

mount /media/a_folder

dans un terminal.

Si j'essaye

Sudo mount /media/a_folder

Je reçois

read: Connection reset by peer

J'ai essayé d'ajouter "allow_other" en tant qu'option dans l'entrée fstab et j'ai supprimé la mise en commentaire de la ligne correspondante dans /etc/Fuse.conf, mais cela n'a rien changé.

L'utilisateur "mynickname" est le propriétaire du dossier/media/a_folder et dispose des autorisations rwx.

J'ai consulté de nombreuses discussions sur Internet sur des personnes ayant des problèmes similaires, mais rien n'a fonctionné jusqu'à présent. Habituellement, les gens ne peuvent même pas faire

sshfs my-PC:/a_folder /media/a_folder

sans erreur, alors que cela fonctionne bien sur mon ordinateur portable.

Toute perspicacité et conseils seront grandement appréciés! Merci.

EDIT: J'ai résolu ce problème il y a un moment, mais j'ai oublié de mettre à jour ce post. Alors voici ce qui est dans mon fstab:

sshfs#mynickname@my-PC:/a_folder /media/a_folder Fuse noauto,_netdev,idmap=user,user,default_permissions 0 0

L'option clé à ajouter était default_permissions si je me souviens bien. Je devais ajouter mynickname au groupe auquel appartient/a_folder/on my-PC.

10
user171348

Le problème que vous rencontrez est que votre utilisateur normal a une configuration correcte pour votre fichier d'identité, tandis que l'utilisateur root n'a aucune idée de la clé ssh à utiliser.

Vous pouvez résoudre ce problème en indiquant à fstab le fichier d'identité/la clé ssh à utiliser lors de la tentative de connexion:

sshfs#user@Host:/mnt/whatever/ /mnt/whatever/        Fuse    user,_netdev,reconnect,uid=1000,gid=1000,IdentityFile=/home/USER/.ssh/KEYFILE,idmap=user,allow_other  0   2
8
earthmeLon

Pour obtenir un résultat de débogage réel, vous devez ajouter les deux options sshfs_debug et debug au montage:

sshfs#mynickname@my-PC:/a_folder /media/a_folder Fuse defaults,idmap=user,_netdev,debug,sshfs_debug 0 0

Avec cela, vous aurez beaucoup d'informations de débogage pour vous aider:

$ Sudo mount -a
SSHFS version 2.5
Fuse library version: 2.9.2
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
executing <ssh> <-x> <-a> <-oClearAllForwardings=yes> <-2> <user@box> <-s> <sftp>
user@box's password: 
Server version: 3
Extension: [email protected] <1>
Extension: [email protected] <2>
Extension: [email protected] <2>
Extension: [email protected] <1>
Extension: [email protected] <1>
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.22
flags=0x0000f7fb
max_readahead=0x00020000
remote_uid = 1001
   INIT: 7.19
   flags=0x00000011
   max_readahead=0x00020000
   max_write=0x00020000
   max_background=0
   congestion_threshold=0
   unique: 1, success, outsize: 40
unique: 2, opcode: STATFS (17), nodeid: 1, insize: 40, pid: 2771
unique: 3, opcode: LOOKUP (1), nodeid: 1, insize: 47, pid: 3371

Dans mon cas, j'ai découvert que ma machine était uniquement listée dans .ssh/config. Elle était donc insoluble pour root.

Et BTW, vous devez définir uid et gid, puisque idmap=user ne semble fonctionner que pour l'utilisateur actuel, qui est la racine dans ce cas.

3
Alexander Torstling

Ce problème peut également se produire lorsque la clé d’hôte de ssh change.

Essayez de vous connecter au serveur via ssh (par exemple ssh username@hostIP). Si l'erreur suivante apparaît:

 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @    WARNING: REMOTE Host IDENTIFICATION HAS CHANGED!    @
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Suivez les instructions du message d’erreur pour supprimer l’ancienne clé et essayez de vous reconnecter via ssh. Si l'erreur n'apparaît plus, la connexion sshfs devrait fonctionner.

3
Gorka

Divulgation complète: geek old-school, mais flambant neuf dans le monde linux/open source

Tout d'abord, j'utilise toujours l'authentification par mot de passe car je ne suis pas encore suffisamment familiarisé avec les clés RSA. C'est presque le haut de la liste cependant.

Informations de configuration pertinentes: Utilisation d'un MacBook Pro sur lequel VMWare Fusion est installé, sur lequel j'ai un serveur Ubuntu 10.04 LTS. S'appuyant sur le terminal Mac et SSH pour presque toutes les interactions de mon serveur

Après avoir saboté une installation Drupal, je suis revenu à un instantané précédent et j'ai été soudainement incapable d'exécuter une commande que je venais d'utiliser quelques instants auparavant: sshfs -o idmap=user -o allow_other [email protected]:/Users/<username>/Documents ~/mountpoint

Le problème est que les clés sont désynchronisées. Je ne sais pas si je devais réellement faire cela à la fois sur mon hôte et sur mon serveur, mais j'ai effacé toutes les clés locales de chacune en sauvegardant d'abord le fichier known_hosts, puis en modifiant le fichier known_hosts pour en supprimer les entrées. .
Sur Mac, ce fichier se trouvait à l'adresse suivante: /Users/<username>/.ssh/known_hosts
Sous Ubuntu, ce fichier se trouve à l'adresse suivante: /home/<username>/.ssh/known_hosts

Donc, pour résumer, toutes effectuées à partir de mon terminal Mac, après le démarrage du serveur Ubuntu:

cp /Users/<username>/.ssh/known_hosts /Users/<username>/.ssh/known_hosts.old
nano  /Users/<username>/.ssh/known_hosts
  # remove extra entries, save file
ssh <username>@ubuntu_server
cp /home/<username>/.ssh/known_hosts, /home/<username>/.ssh/known_hosts.old
nano /home/<username>/.ssh/known_hosts
  # remove extra entries, save file

Lors de la première connexion SSH dans chaque système, SSH m’invite à autoriser l’ajout de clés RSA et tout fonctionne par la suite.

0
Beau