web-dev-qa-db-fra.com

SSHFS demandant toujours un mot de passe dans FSTAB?

J'essaie d'entrer dans une monture de SSHFS dans/etc/fstab avec la ligne suivante:

sshfs#[email protected]:/media/usb0 /media/ExtHD Fuse     defaults,nonempty,allow_other 0 0

Afin que ce volume soit monté au démarrage. Après avoir démarré, rien ne se passe, mais lorsque j'utilise la commande sudo mont -a, je suis toujours invitée au mot de passe. J'ai configuré des clés SSH et les transféra à l'ordinateur au 192.168.0.2 et peut vous connecter à SSH régulier sans PASWORD. Comment puis-je arrêter de faire du fusible de demander mon mot de passe afin que le volume puisse être monté automatiquement au démarrage?

Si cela vous aide, j'essaie de vous connecter à un serveur de domicile exécutant Debian à partir d'un ordinateur portable exécutant une arche Linux. Merci

21
semiserious

L'authentification à clé ne peut fonctionner que si le processus ssh peut trouver votre clé. Vous avez probablement votre clé dans votre répertoire personnel; Mais vous n'avez jamais dit sshfs Où chercher une clé. Au moment du démarrage, ce serait root montage de tous les systèmes de fichiers, donc la clé doit être soit en /root/.ssh ou référencé dans /root/.ssh/config.

Je recommande de monter le système de fichiers après votre inscription et comme votre propre utilisateur. Mettez ceci dans un script qui est exécuté lorsque vous vous connectez:

ssh-add ~/.ssh/name_of_key.id_rsa
sshfs homeserver:/media/usb0 ~/exthd

Mettre un alias appelé homeserver dans votre ~/.ssh/config:

Host homeserver
HostName 192.168.0.2
User oli

J'ai été capable de faire monter les SSHFS via FSTAB avec Ubuntu 14.04 en utilisant la syntaxe suivante en tant qu'utilisateur standard (notez que tout ce qui est dans Caps est une variable pour vous remplir):

USER@Host:/REMOTE_DIR /LOCAL_DIR Fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID,gid=USER_GID 0 0

Il s'agit d'une combinaison des informations trouvées ici https://superuser.com/questions/669287/Automount-SShfs-utilisateur-fstab-without-mount-a et ajout de la retard_connect à partir d'ici https://askabuntu.com/questions/326977/sshfs-is-not-mounting-automatiquement-at-boot-deespit-etc-fstab -configuration .

J'ai utilisé ce tutoriel pour obtenir mon user_id et user_gid: https://kb.iu.edu/data/adwf.html

Pour trouver l'UID ou la GID d'un utilisateur dans UNIX, utilisez la commande id. Pour trouver l'UID d'un utilisateur spécifique, à l'invite UNIX, entrez:

id -u username

Remplacez le nom d'utilisateur avec le nom d'utilisateur de l'utilisateur approprié. Pour trouver le GID d'un utilisateur, à l'invite UNIX, entrez:

id -g username

De plus, si vous voulez un didacticiel complet, il sera posté à https://www.variux.com/sshfs-automount-at-boot-with-fstab-on-ubuntu-14-04/ Englisons

10
variuxDavid

J'ai eu le même problème.

J'avais déjà configuré SSH Keys via le ssh-keygen puis ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

sSH a fonctionné bien sans me demander un mot de passe, donc j'ai été confondu de pourquoi les SSHFS voulaient toujours le mot de passe ...

C'est-à-dire,

ssh [email protected] 

travaillé bien, mais SSHFS a toujours demandé un mot de passe quand j'ai tapé

Sudo sshfs [email protected]:/home/raspberry/Videos /home/pi/LinuxMintMountedFolder/ -o allow_other

Comme les Gilles ci-dessus expliqués, sshfs cherchait dans le répertoire racine pour les clés nécessaires.

Par conséquent, j'ai résolu ceci en copiant simplement les fichiers id_rsa et id_rsa.pub du dossier masqué masqué de mon dossier de mon dossier à la racine.

cp /home/pi/.ssh/id_rsa /root/.ssh/
cp /home/pi/.ssh/id_rsa.pub /root/.ssh/

Ensuite, en tapant les éléments suivants travaillés sans me déranger pour un mot de passe:

Sudo sshfs [email protected]:/home/raspberry/Videos /home/pi/LinuxMintMountedFolder/ -o allow_other
5
CMP

Vous pouvez réellement montez SSHFS sans clé publique sur le démarrage en utilisant l'option Password_stdin, mais pas avec FSTAB.

Ce dont vous avez besoin est un petit fichier de script et cron.

Sachez que la clé publique est toujours un meilleur choix. Mais parfois, les clés publiques ne fonctionnent pas (j'ai eu cette question plusieurs fois moi-même). Veuillez noter que le fichier de script contiendra le mot de passe en plaine. Vous devez vous assurer que seule la racine a une autorisation de ce fichier!

Le fichier de script peut ressembler à ceci (/root/automount.sh):

#!/bin/sh
if [ $(mount | grep 'user@server:/folder' | wc -l) -ne 1 ]
then
    echo 'PASSWORD' | sshfs user@server:/folder /mnt/mountpoint -o password_stdin,allow_other
    echo 'SSHFS has been mounted.'
else
    echo 'SSHFS is already mounted.'
fi

Pour exécuter cela au démarrage, vous pouvez utiliser Crontab en tant que root et entrez cette ligne:

@reboot /root/automount.sh

Comme indiqué ci-dessus, vous devez vous assurer que absolument personne ne peut lire le fichier car il contient un mot de passe en texte brut!

-rwx------ 1 root root 526 Nov 21 12:57 automount.sh

À présent, après chaque redémarrage, votre système montez automatiquement les SSHF à l'aide des informations d'identification.

3
Nico

Fonctionne parfaitement sur Debian 8.2 Ajout de la ligne suivante à fstab:

user@hostname:/path/to/localmountpoint /path/to/remotemountpoint Fuse.sshfs _netdev,user,port=(if_not_22),idmap=user,transform_symlinks,identityfile=/home/user/.ssh/id_rsa,allow_other,default_permissions,uid=user_id,gid=group_id 0 0

Nom d'hôte indique que le serveur distant (le dossier de montage de) utilisateur est le même local et à distance. (Plus facile)

Assurez-vous que vous avez créé localement la clé SSH pour l'utilisateur à l'aide de ssh-keygen et utilise ssh-copy-id Pour copier la clé du serveur distant (nom d'hôte).

Tu peux trouver user_id et group_id Pour l'utilisateur dans le serveur local /etc/passwd.

Assurez-vous également que l'utilisateur a des autorisations de lecture/d'écriture dans le dossier path/to/localmountpoint.

2
LincolnP

Si vous essayez de vous connecter à un serveur qui ne prend pas en charge les clés et que vous souhaitez toujours que ce soit automatique, vous pouvez utiliser sshpass pour saisir votre mot de passe pour vous même avec sshfs et même dans fstab.

Par exemple, si vous mettez quelque chose de similaire à celui-ci dans /etc/fstab:

sshfs#username@Host:/  /mnt/here   Fuse   auto,ssh_command=sshpass\040-f\040/root/.ssh/Host.password\040ssh  0  0

Ensuite, mettez le mot de passe dans le nom de fichier spécifié dans /etc/fstab:

echo 'secret' > /root/.ssh/Host.password

Assurez-vous que vous avez installé sshpass:

pacman -S sshpass  # if you're using Arch Linux

Ensuite, cela devrait fonctionner:

mount /mnt/here

Vous pourriez avoir besoin de ssh sur le serveur une fois pour confirmer sa clé, mais après cela, cela devrait fonctionner sans interaction manuelle, et avec le drapeau auto dans fstab il devrait Montez au démarrage sans besoin d'entrer manuellement le mot de passe.

1
Malvineous

Avait le même problème. En fin de compte, il a aidé à régler le type à un simple fusible ou (ce qui est probablement) des options tronquantes à:

Fuse reconnect,idmap=user,allow_other,default_permissions

qui a travaillé pour moi à la fin

0
Kangur