sshfs n'utilisera pas ~ / .ssh / config (sous Linux Mint 15)

10
Local:         Linux Mint 15 - Olivia
/proc/version: Linux version 3.8.0-19-generic (buildd@allspice) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) )
ssh -V:        OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012
sshfs -V:      SSHFS version 2.4
               FUSE library version: 2.9.0
               fusermount version: 2.9.0
               using FUSE kernel interface version 7.18

Remote:        Ubuntu 12.04.3 LTS
/proc/version: Linux version 3.10.9-xxxx-std-ipv6-64 ([email protected]) (gcc version 4.7.2 (Debian 4.7.2-5) )
ssh -V:        OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012

J'essaie de configurer un montage sans mot de passe d'un serveur distant en utilisant sshfs et fuse. Le serveur distant fonctionne sur un port non standard et j'utiliserai une paire de clés ssh pour m'authentifier.

En cas de succès, je répéterai cela pour trois autres serveurs distants, chacun avec des clés différentes, je dois donc être en mesure de spécifier quelle clé correspond à quel serveur distant.

J'ai basé mes modifications sur ce tutoriel

  • La clé publique est dans remote: authorized_keys
  • J'ai ajouté mon utilisateur local au fusegroupe.
  • J'ai édité mon local ~/.ssh/configpour avoir (par serveur):

"

Host [server_ip]
  Port = [port]
  IdentityFile  = "~/.ssh/[private_key]"
  User = "[user]"

"

Chaque fois que j'essaie de monter le serveur distant localement, on me demande le mot de passe de l'utilisateur distant (pas le mot de passe de ma clé privée). L'utilisateur distant a un long mot de passe généré aléatoirement que je ne voudrais pas avoir à enregistrer ou à mémoriser et donc les clés sont la façon dont je veux le faire.

Je peux me connecter via ssh (combiné avec le ~/.ssh/configfichier) en utilisant la commande ssh [ip]afin que je sache que le fichier de configuration peut être lu correctement car on me demande la phrase de passe de ma clé et non celle de l'utilisateur distant.

Pour même tenter de me connecter au serveur distant, je dois spécifier manuellement les détails de connexion complets dans la commande: `sshfs [user] @ [ip]: [remote_path] [local_path] -p [port]

Ce que j'ai essayé jusqu'à présent:

  • ssh-add / chemin / vers / clé (ajout réussi)
  • Spécification PreferredAuthentication = publickeydans ~ / .ssh / config
  • sshfs -o IdentityFile = / chemin / vers / utilisateur clé @ ip: / / mon / mnt / dir
  • sshfs user @ ip: / / my / mnt / dir -o IdentityFile = / chemin / vers / clé
  • renommage temporaire de la clé par défaut id_rsa
  • sshfs -F ~ / .ssh / config

Y a-t-il un fichier de configuration local ou distant que je regarde? Un commutateur ou une option que je dois inclure dans l'appel à sshfs (essayé -F) pour le forcer à lire et à utiliser ma configuration ssh?

Sortie de ssh -v -p [port] [user]@[remote_ip]

OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 mai 2012
debug1: lecture des données de configuration /home/}me[/.ssh/config
debug1: /home/[me E5E/.ssh/config ligne 2: application d'options pour [remote_ip]
debug1: /home/[me E5E/.ssh/config ligne 24: application d'options pour *
debug1: lecture des données de configuration / etc / ssh / ssh_config
debug1: / etc / ssh / ssh_config ligne 19: Application d'options pour *
debug1: connexion au port [remote_ip] [[remote_ip]] [port].
debug1: connexion établie.
debug1: fichier d'identité /home/}me[/.ssh/[private_key] type 2
debug1: Vérification du fichier de liste noire /usr/share/ssh/blacklist.DSA-1024
debug1: Vérification du fichier de liste noire /etc/ssh/blacklist.DSA-1024
debug1: fichier d'identité /home/[me[/.ssh/[private_key
debug1: protocole distant version 2.0, version logicielle distante OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: correspondance: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH_5 *
debug1: activation du mode de compatibilité pour le protocole 2.0
debug1: chaîne de version locale SSH-2.0-OpenSSH_6.1p1 Debian-4
debug1: SSH2_MSG_KEXINIT envoyé
debug1: SSH2_MSG_KEXINIT reçu
debug1: kex: serveur-> client aes128-ctr hmac-md5 [email protected]
debug1: kex: client-> serveur aes128-ctr hmac-md5 [email protected]
debug1: envoi de SSH2_MSG_KEX_ECDH_INIT
debug1: attend SSH2_MSG_KEX_ECDH_REPLY
debug1: clé d'hôte du serveur: [clé]
debug1: vérification sans identifiant de port
debug1: l'hôte '[remote_ip]' est connu et correspond à la clé d'hôte ECDSA.
debug1: clé trouvée dans /home/[me[/.ssh/known_hosts:7
debug1: clé correspondante trouvée sans port
debug1: ssh_ecdsa_verify: signature correcte
debug1: SSH2_MSG_NEWKEYS envoyé
debug1: attend SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS reçu
debug1: Itinérance non autorisée par le serveur
debug1: SSH2_MSG_SERVICE_REQUEST envoyé
debug1: SSH2_MSG_SERVICE_ACCEPT reçu
debug1: authentifications qui peuvent continuer: publickey, mot de passe
debug1: méthode d'authentification suivante: publickey
debug1: offre de la clé publique DSA: /home/[me[/.ssh/[private_key]
debug1: le serveur accepte la clé: pkalg ssh-dss blen 433
debug1: activation de la compression au niveau 6.
debug1: authentification réussie (publickey).
Authentifié auprès de [remote_ip] ([[remote_ip]]: [port]).
debug1: canal 0: nouveau [client-session]
debug1: Demande à [email protected]
debug1: entrée dans une session interactive.
debug1: Envoi de l'environnement.
debug1: Envoi env LANG = en_GB.UTF-8
debug1: Envoi env LC_CTYPE = en_GB.UTF-8
Bienvenue dans Ubuntu 12.04.3 LTS (GNU / Linux 3.10.9-xxxx-std-ipv6-64 x86_64)

Edit:
j'ai trouvé le problème. J'essayais de monter l'emplacement distant sur / mnt / new_dir en utilisant sudo. Si je monte à un emplacement dans ma maison locale, cela fonctionne. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount.

J'ai maintenant fait un sudo chown root:fuse /mnt/new_diret sudo chmod 774 /mnt/new_diret je crois que tout fonctionne comme prévu.

Y a-t-il des problèmes de sécurité avec cette configuration dont je dois être conscient? (Mon propre utilisateur et root sont les seuls membres du fusegroupe.

indivisible
la source
Salut MBS, vous pouvez exécuter ssh avec le commutateur -v pour afficher les erreurs éventuellement présentes. cela peut valoir la peine de voir s'il y a une erreur lors de la lecture du fichier. En outre, vos clés sur le serveur cible doivent disposer de 600 autorisations.
Rqomey
Merci pour la réponse rapide. ssh verbose: pastebin.com/Rm5X7y5p (je reviendrai avec les sshfs verbose dans un min
indivisible
sshfs utilisant la -o ssh_command='ssh -v'commande se bloque et ne produit rien
indivisible
Je pense que j'ai peut-être trouvé le problème (ou du moins je m'en suis rapproché). J'essayais de monter l'emplacement distant sur / mnt / new_dir en utilisant sudo. Si je monte à un emplacement dans ma maison locale, cela fonctionne. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount. Puis-je configurer mon utilisateur afin qu'il dispose des autorisations nécessaires pour monter sur / mnt afin que d'autres utilisateurs puissent utiliser les ressources distantes?
indivisible
1
Je vois que vous êtes nouveau sur stackexchange, alors bienvenue. Mais quelques conseils: je sais que vous souhaitez essayer de vous anonymiser en masquant les données, mais vous ne devriez vraiment pas. Si vous aviez fourni ce petit renseignement indiquant où vous montiez le support, d'autres auraient peut-être remarqué le problème. Ne liez pas non plus à des sites externes (pastebin) pour fournir une sortie, incluez-le ici. Enfin si vous avez une solution, fournissez-la comme réponse et acceptez cette réponse, ne mettez pas "résolu" dans le sujet.
Patrick

Réponses:

12

Si vous utilisez, sudovous utilisez probablement les informations d'identification de root pour monter, ce que je ne pense pas être ce que vous voulez. Je ne ferais probablement pas ce que vous demandez, wrt. montage en /mnttant qu'utilisateur1 et accès en tant qu'utilisateur2. Cela va se compliquer avec les groupes et les autorisations des utilisateurs. Si vous voulez vraiment monter un répertoire sur / mnt à partager, vous devriez vraiment le monter via le niveau système pour tous les utilisateurs autofs.

Montage automatique

Il y a 3 méthodes que je connais pour monter automatiquement un montage comme celui-ci.

slm
la source
C'était exactement le problème. J'ai modifié ma question pour inclure les étapes que j'ai suivies pour modifier les autorisations du dossier en question, mais bien que cela fonctionne, je suis sûr que ce n'est pas la meilleure solution. - Je n'avais pas encore essayé d'utiliser autofscar je ne pouvais pas établir la connexion sshfs avant maintenant. Suggérez-vous que j'ajoute une autre paire de clés à local:/root/.ssh/keyet remote:/[user]/.ssh/authorized_keys? Que devraient être chownet chmodêtre pour l' local:/mnt/dirêtre? (Je veux des perms complètes pour moi et en lecture seule pour les autres utilisateurs)
indivisible
@mbs - voir les mises à jour
slm
1
Cette URL vers autofs, est-elle correcte? Parce qu'il semble incorrect lorsque vous le demandez. Il montre des sports dans une langue non anglaise.
Geoffrey Anderson