web-dev-qa-db-fra.com

Utilisez sshfs avec ssh-agent et / ou kwallet

J'utilise sshfs avec une paire de clés protégée par mot de passe pour monter un dossier distant à l'aide d'un script Shell. J'utilise aussi ssh dans ce script.

Chaque fois que je lance le script Shell, une requête de mot de passe est demandée sur la ligne de commande pour chaque appel sshfs. J'ai besoin d'empêcher ça.

Est-il possible d'utiliser sshfs avec ssh-agent et/ou kwallet (comme je le fais pour ssh)? Ou puis-je réutiliser une connexion ssh existante avec sshfs?

4
Silicomancer

Démarrez-vous sshfs à partir de votre shell ou d'un script de démarrage?

Si vous le démarrez à partir de votre shell et que vous avez un agent ssh en cours d'exécution, cela devrait fonctionner:

$ ssh-add -l
2048 SHA256:XXXXX /home/ji/.ssh/id_rsa (RSA)
$ echo success > foo
$ scp foo ins:
  ...
$ rm foo
$ mkdir /tmp/j
$ sshfs ins: /tmp/j
$ cat /tmp/j/foo
success

Si vous le démarrez à partir d'un emplacement ne contenant pas déjà SSH_AUTH_SOCK dans son environnement et en supposant que ssh-agent est déjà actif et possède la clé, vous pouvez simplement définir la valeur correcte de SSH_AUTH_SOCK, que vous pouvez obtenir en exécutant ps uxeww | grep SSH_AUTH_SOCK et en massant la sortie, ou simplement en regardant le socket /tmp/ssh-*/* auquel vous pouvez accéder et en l'utilisant! Je suppose que vous pouvez écrire un simple script shell pour le faire!

1
JayEye
  1. Décommentez (ou ajoutez une ligne) user_allow_other à /etc/Fuse.conf
  2. Exécutez le montage sans Sudo

sshfs est au premier plan, ce qui me convient. Vous ne voulez pas quitter les monts distants et avoir un accident potentiel dans les systèmes de prod.

0
Tom Potter