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.
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
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.
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.
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.