Script en root avec SSHFS sans mot de passe, c'est possible ? (résolu)

Script en root avec SSHFS sans mot de passe, c'est possible ? (résolu) - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 06-10-2014 à 21:37:31    

Bonjour,
 
Je suis en train de programmer un raspberry pi (A) sous la disitribution Raspbian.
Actuellement j'essaye de mettre au point un script qui va faire monter le dossier d'un autre raspberry B sur le raspberry A sans mot de passe.
 
La seule commande que j'ai trouvé pour monter un répertoire distant est SSHFS.
 
Si je tape la commande suivante sur le raspberry pi A ça fonctionne bien :

Code :
  1. sudo sshfs -o allow_other pi_B@192.168.1.10:/home/pi/test_pi_B


 
J'accède bien au dossier test_pi_B sur le raspberry A:  

Code :
  1. cd /home/pi/test_pi_B


 
Par contre il me demande le mot de passe du raspberry pi B pour que la commande SSHS fonctionne.
 
 
J'ai suivi le autorail suivant pour accéder à un linux à distance par SSH sans mot de passe : http://lea-linux.org/documentation [...] t_de_passe
Sur le raspberry A si je fait la commande suivante j'accède au raspberry pi B sans mot de passe :

Code :
  1. ssh pi_B@192.168.1.10


 
Par contre si je tape la commande SSHFS (voir ci-dessus) il me demande toujours le mot de passe.  
Savez-vous comment utiliser SSHFS sans mot de passe ?
 
Merci,


Message édité par nba_pit le 23-10-2014 à 20:14:21
Reply

Marsh Posté le 06-10-2014 à 21:37:31   

Reply

Marsh Posté le 06-10-2014 à 23:47:08    

Salut.
Tu es obligé d'utiliser SSHFS ?
Parce que sinon le plus simple c'est de faire exécuter la commande directement avec SSH, par exemple :
 

Code :
  1. # ssh root@X.X.X.X "ifconfig"


 
Tu peux faire du scp si c'est pour la copie de fichier.

Reply

Marsh Posté le 13-10-2014 à 11:22:29    


Merci pour tes deux liens.
 
Pour l'authentification par clé là c'est bon mon fichier authorized_keys a été rempli avec le contenu de id_rsa.pub.
 
Mais je ne comprends pas le second site avec la spéfication de la clé à utiliser.  
Il faut utiliser la commande suivante :

Code :
  1. sshfs me@x.x.x.x:/remote/path /local/path/ -o IdentityFile=/path/to/key


 
Quel lien faut-il que je donne pour le IdentityFile ?

Reply

Marsh Posté le 16-10-2014 à 22:35:05    

le chemin de la clé privée :
/root/.ssh/id_rsa ou /home/tonuser/.ssh/id_rsa


---------------
Les avis, c'est comme les anus, tout le monde en a un.
Reply

Marsh Posté le 19-10-2014 à 12:11:00    

l4nkou a écrit :

le chemin de la clé privée :
/root/.ssh/id_rsa ou /home/tonuser/.ssh/id_rsa


Je rajoute

Code :
  1. IdentityFile=/home/monuser/.ssh/id_rsa

 
J'obtiens le message d'erreur suivant :

Code :
  1. fuse: invalid argument `IdentityFile=/home/monuser/.ssh/id_rsa'


Message édité par nba_pit le 19-10-2014 à 12:11:37
Reply

Marsh Posté le 19-10-2014 à 13:48:46    

pourquoi "sudo sshfs" dans ton premier post

 

Pour ma part j'avais fait un sshfs entre deux PC (Mint 13) avec clef et ça marche sans rien faire.
J'ai mis un script exécutable dans /home/truc, à double cliquer dans le gestionaire de fichiers et le contenu de l'autre PC est monté dans /home/truc/bidule.

 

sans rien à spécifier :??:
la commande sshfs étant lancée en tant qu'user (il m'a aussi fallu des années avant de savoir que fusermount -u permet de démonter sans être root, aussi)

Message cité 1 fois
Message édité par blazkowicz le 19-10-2014 à 13:54:40
Reply

Marsh Posté le 19-10-2014 à 13:58:17    

blazkowicz a écrit :

pourquoi "sudo sshfs" dans ton premier post
 
Pour ma part j'avais fait un sshfs entre deux PC (Mint 13) avec clef et ça marche sans rien faire.
J'ai mis un script exécutable dans /home/truc, à double cliquer dans le gestionaire de fichiers et le contenu de l'autre PC est monté dans /home/truc/bidule.
 
sans rien à spécifier :??:
la commande sshfs étant lancée en tant qu'user (il m'a aussi fallu des années avant de savoir que fusermount -u permet de démonter sans être root, aussi)


Pourquoi sudo ? J'ai dû voir un tuto qui mettait le sudo.
 
Par contre j'ai relancé la commande et j'ai toujours la même erreur :
 

Code :
  1. sshfs -o allow_other pi@192.168.1.13:/home/pi/test /home/pi/serveur/ IdentityFile=/home/pi/.ssh/id_rsa
  2. fuse: invalid argument `IdentityFile=/home/pi/.ssh/id_rsa'


 

Reply

Marsh Posté le 19-10-2014 à 14:11:10    

C'est une question de syntaxe d'après mes petits tests bidon, ton option a besoin d'être derrère un -o
(à supposer que tu ais besoin de l'option, puisqu'en tant que ton utilisateur il ira chercher tout seul dans ~/.ssh)

 

Les sshfs, les scp ça n'aime pas les fautes de grammaire et d'orthographe (ce que je préfère c'est les répertoires/fichiers avec une apostrophe ou un espace dans le nom)

 

il peut y avoir deux petits trucs à configurer vis à vis de l'usage de fuse par ton utilisteur.

Message cité 1 fois
Message édité par blazkowicz le 19-10-2014 à 14:14:19
Reply

Marsh Posté le 19-10-2014 à 14:18:53    

blazkowicz a écrit :

C'est une question de syntaxe d'après mes petits tests bidon, ton option a besoin d'être derrère un -o
(à supposer que tu ais besoin de l'option, puisqu'en tant que ton utilisateur il ira chercher tout seul dans ~/.ssh)
 
Les sshfs, les scp ça n'aime pas les fautes de grammaire et d'orthographe (ce que je préfère c'est les répertoires/fichiers avec une apostrophe ou un espace dans le nom)
 
il peut y avoir deux petits trucs à configurer vis à vis de l'usage de fuse par ton utilisteur.


Merci !
Maintenant ça marche en déplaçant le -o.
 
Il a fallu également que j'enlève allow_user.
 
Voici ma commande :
 

Code :
  1. sshfs pi@192.168.1.13:/home/pi/test /home/pi/serveur/ -o IdentityFile=/home/pi/.ssh/id_rsa

Reply

Marsh Posté le 19-10-2014 à 14:18:53   

Reply

Marsh Posté le 19-10-2014 à 14:44:33    

à savoir, sur mon PC dit ça à apropos de allow_user et c'est trivial à régler.

 

cela dit, si tu n'as pas besoin de l'option alors autant ne pas la mettre :) (c'était en particulier nécessaire en faisant le sshfs en tant que root, avec le sudo..)

 

fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf

 

pour être 100% clair : tu peux faire "commande -o truc -o bidule" ou "commande -o truc,bidule" mais en faisant "commande -o truc bidule" eh ben ça ne lui plaît pas du tout. La pauvre commande ou le pauvre shell croient que bidule est un argument (tel qu'un répertoire ou un hôte) au lieu d'une option.

 

Ah oui, le shell s'en fiche et n'en a pas la notion (contrairement à DOS/Windows où dans DIR /?  le /? est identifié comme une option), les commandes ou programmes sous unix/linux ont diverses façon de spécifier/intepréter les options. tar et dd sont de célèbres exemples, avec lesquels tu vas détruire accidentellement tes données en te trompant d'une lettre ou d'une ponctuation.

Message cité 1 fois
Message édité par blazkowicz le 19-10-2014 à 14:57:24
Reply

Marsh Posté le 20-10-2014 à 18:45:27    

blazkowicz a écrit :

à savoir, sur mon PC dit ça à apropos de allow_user et c'est trivial à régler.
 
cela dit, si tu n'as pas besoin de l'option alors autant ne pas la mettre :) (c'était en particulier nécessaire en faisant le sshfs en tant que root, avec le sudo..)
 

fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf


 
pour être 100% clair : tu peux faire "commande -o truc -o bidule" ou "commande -o truc,bidule" mais en faisant "commande -o truc bidule" eh ben ça ne lui plaît pas du tout. La pauvre commande ou le pauvre shell croient que bidule est un argument (tel qu'un répertoire ou un hôte) au lieu d'une option.  
 
Ah oui, le shell s'en fiche et n'en a pas la notion (contrairement à DOS/Windows où dans DIR /?  le /? est identifié comme une option), les commandes ou programmes sous unix/linux ont diverses façon de spécifier/intepréter les options. tar et dd sont de célèbres exemples, avec lesquels tu vas détruire accidentellement tes données en te trompant d'une lettre ou d'une ponctuation.


En fait je vais devoir utiliser cette commande en root :

Code :
  1. sudo sshfs ...


 
Avec sudo ça ne fonctionne pas, normal. Mais impossible aussi de la faire fonctionner avec allow_other dans la commande (peu importe l'endroit).  
 
Pourtant j'ai bien rajouté la ligne 'user_allow_other' dans /etc/fuse.conf.


Message édité par nba_pit le 20-10-2014 à 18:47:23
Reply

Marsh Posté le 20-10-2014 à 19:03:09    

et l'user dans le groupe fuse?

Reply

Marsh Posté le 23-10-2014 à 10:37:08    

blazkowicz a écrit :

et l'user dans le groupe fuse?


Lorsque je tape "groups" fuse apparait dans la liste.  
Mais je pense que c'est le compte user qui est dans le groupe fuse et non pas le root, il faudrait peut-être que le root soit dans le groupe fuse.

Reply

Marsh Posté le 23-10-2014 à 15:31:43    

Il me semble que root est dans tous les groupes ou c'est comme si ça l'était (sauf système particulièrement verrouillé avec SElinux par exemple..). En ligne de commande tu as la commande "id".
 

Reply

Marsh Posté le 23-10-2014 à 17:21:33    

blazkowicz a écrit :

Il me semble que root est dans tous les groupes ou c'est comme si ça l'était (sauf système particulièrement verrouillé avec SElinux par exemple..). En ligne de commande tu as la commande "id".
 


La commande id donne ce résultat  :
 

Code :
  1. uid=1000(pi) gid=1000(pi) groups=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),
  2. 60(games),100(users),105(netdev),108(fuse),999(input),1002(spi),1003(gpio)


Message édité par nba_pit le 23-10-2014 à 17:22:37
Reply

Marsh Posté le 23-10-2014 à 19:34:38    

C'est bon j'ai réussi à faire un SSHFS en root, il faut ajouter -o allow_other, ce qui donne :
 

Code :
  1. sshfs -o allow_other pi@192.168.1.13:/home/pi/test /home/pi/serveur/ -o IdentityFile=/home/pi/.ssh/id_rsa


 
 
Merci Blazkowicz pour tes réponses  :)


Message édité par nba_pit le 23-10-2014 à 20:14:38
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed