sshfs verwendet ~ / .ssh / config nicht (unter 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

Ich versuche, mit sshfs und fuse einen kennwortlosen Mount eines Remote-Servers einzurichten. Der Remote-Server wird an einem nicht standardmäßigen Port ausgeführt, und ich werde zur Authentifizierung ein SSH-Schlüsselpaar verwenden.

Wenn dies erfolgreich ist, werde ich dies für drei weitere Remoteserver mit jeweils unterschiedlichen Schlüsseln wiederholen, damit ich angeben kann, welcher Schlüssel welchem ​​Remoteserver zugeordnet ist.

Ich habe meine Änderungen auf diesem Tutorial basiert

  • Der öffentliche Schlüssel befindet sich in remote: authorized_keys
  • Ich habe meinen lokalen Benutzer zur fuseGruppe hinzugefügt .
  • Ich habe mein lokales bearbeitet, um ~/.ssh/configzu haben (pro Server):

`

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

`

Wenn ich versuche, den Remote-Server lokal bereitzustellen, werde ich aufgefordert, das Kennwort des Remote-Benutzers einzugeben (nicht das Kennwort meines privaten Schlüssels). Der Remote-Benutzer hat ein langes, zufällig generiertes Passwort, das ich nicht speichern oder speichern möchte. Daher möchte ich dies mit Schlüsseln tun.

Ich kann ~/.ssh/configmit dem Befehl über ssh (kombiniert mit der Datei) eine Verbindung herstellen, ssh [ip]damit ich weiß, dass die Konfigurationsdatei korrekt gelesen werden kann, da ich nach der Passphrase meines Schlüssels gefragt werde, nicht nach der Passphrase des Remote-Benutzers.

Um überhaupt zu versuchen, eine Verbindung zum Remote-Server herzustellen, muss ich die vollständigen Verbindungsdetails im Befehl manuell angeben: `sshfs [Benutzer] @ [IP]: [Remote-Pfad] [Lokaler_Pfad] -p [Port]

Was ich bisher versucht habe:

  • ssh-add / path / to / key (erfolgreiche Hinzufügung)
  • Angabe PreferredAuthentication = publickeyin ~ / .ssh / config
  • sshfs -o IdentityFile = / path / to / key user @ ip: / / my / mnt / dir
  • sshfs user @ ip: / / my / mnt / dir -o IdentityFile = / path / to / key
  • Temp Umbenennung des Schlüssels auf Standard von id_rsa
  • sshfs -F ~ / .ssh / config

Gibt es eine entfernte oder lokale Konfigurationsdatei, die ich übersehen habe? Irgendein Schalter oder eine Option, die ich in den Aufruf von sshfs (versucht -F) aufnehmen muss, um das Lesen und Verwenden meiner ssh-Konfiguration zu erzwingen?

Ausgabe von ssh -v -p [port] [user]@[remote_ip]

OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10. Mai 2012
debug1: Konfigurationsdaten lesen /home/[me‹/.ssh/config
debug1: /home/[me‹/.ssh/config Zeile 2: Anwenden von Optionen für [remote_ip]
debug1: /home/[me‹/.ssh/config Zeile 24: Anwenden von Optionen für *
debug1: Konfigurationsdaten lesen / etc / ssh / ssh_config
debug1: / etc / ssh / ssh_config Zeile 19: Anwenden von Optionen für *
debug1: Verbindung zu [remote_ip] [[remote_ip]] Port [Port] herstellen.
debug1: Verbindung hergestellt.
debug1: Identitätsdatei /home/[me‹/.ssh/[private_key] Typ 2
debug1: Überprüfen der Blacklist-Datei /usr/share/ssh/blacklist.DSA-1024
debug1: Überprüfen der Blacklist-Datei /etc/ssh/blacklist.DSA-1024
debug1: Identitätsdatei /home/[me‹/.ssh/[private_key‹-cert type -1
debug1: Remote-Protokoll Version 2.0, Remote-Softwareversion OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH_5 *
debug1: Kompatibilitätsmodus für Protokoll 2.0 aktivieren
debug1: Lokale Versionszeichenfolge SSH-2.0-OpenSSH_6.1p1 Debian-4
debug1: SSH2_MSG_KEXINIT gesendet
debug1: SSH2_MSG_KEXINIT empfangen
debug1: kex: server-> client aes128-ctr hmac-md5 [email protected]
debug1: kex: client-> server aes128-ctr hmac-md5 [email protected]
debug1: SSH2_MSG_KEX_ECDH_INIT senden
debug1: SSH2_MSG_KEX_ECDH_REPLY erwartet
debug1: Server-Host-Schlüssel: [Schlüssel]
debug1: Überprüfung ohne Port-ID
debug1: Host '[remote_ip]' ist bekannt und stimmt mit dem ECDSA-Hostschlüssel überein.
debug1: Schlüssel in /home/[me‹/.ssh/known_hosts:7 gefunden
debug1: passenden Schlüssel ohne Port gefunden
debug1: ssh_ecdsa_verify: Signatur korrekt
debug1: SSH2_MSG_NEWKEYS gesendet
debug1: erwartet SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS empfangen
debug1: Roaming vom Server nicht erlaubt
debug1: SSH2_MSG_SERVICE_REQUEST gesendet
debug1: SSH2_MSG_SERVICE_ACCEPT empfangen
debug1: Authentifizierungen, die fortgesetzt werden können: publickey, Passwort
debug1: Nächste Authentifizierungsmethode: publickey
debug1: Öffentlichen DSA-Schlüssel anbieten: /home/[me‹/.ssh/[private_key]
debug1: Server akzeptiert Schlüssel: pkalg ssh-dss blen 433
debug1: Komprimierung auf Ebene 6 aktivieren.
debug1: Authentifizierung erfolgreich (publickey).
Authentifiziert bei [remote_ip] ([[remote_ip]]: [port]).
debug1: channel 0: new [client-session]
debug1: Anfordern von [email protected]
debug1: Interaktive Sitzung aufrufen.
debug1: Sendeumgebung.
debug1: Senden von env LANG = en_GB.UTF-8
debug1: Senden von env LC_CTYPE = en_GB.UTF-8
Willkommen bei Ubuntu 12.04.3 LTS (GNU / Linux 3.10.9-xxxx-std-ipv6-64 x86_64)

Edit:
Ich habe das Problem gefunden. Ich habe versucht, den Remote-Speicherort mit sudo in / mnt / new_dir zu mounten. Wenn ich an einem Ort in meinem lokalen Zuhause einbinde, funktioniert es. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount.

Ich habe jetzt ein sudo chown root:fuse /mnt/new_dirund gemacht sudo chmod 774 /mnt/new_dirund ich glaube, dass alles wie beabsichtigt funktioniert.

Gibt es Sicherheitsprobleme mit dieser Einrichtung, die ich beachten muss? (Mein eigener Benutzer und root sind die einzigen Mitglieder der fuseGruppe.

unteilbar
quelle
Hallo MBS, Sie können ssh mit dem Schalter -v ausführen, um eventuell vorhandene Fehler anzuzeigen. Es kann sich lohnen, dies zu tun, um festzustellen, ob beim Lesen der Datei ein Fehler auftritt. Außerdem sollten Ihre Schlüssel auf dem Zielserver 600 Berechtigungen haben.
Rqomey
Danke für die schnelle Antwort. ssh verbose: pastebin.com/Rm5X7y5p (Ich werde mit dem sshfs verbose in einem min
unteilbaren
sshfs mit dem -o ssh_command='ssh -v'Befehl hängt nur und gibt nichts aus
unteilbar
Ich glaube, ich habe das Problem gefunden (oder bin ihm zumindest näher gekommen). Ich habe versucht, den Remote-Speicherort mit sudo in / mnt / new_dir zu mounten. Wenn ich an einem Ort in meinem lokalen Zuhause einbinde, funktioniert es. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount. Kann ich meinen Benutzer so konfigurieren, dass er über die erforderlichen Berechtigungen zum Mounten an / mnt verfügt, damit andere Benutzer die Remote-Ressourcen nutzen können?
unteilbar
1
Ich sehe, dass Sie neu im Stackexchange sind. Willkommen. Aber ein paar Tipps: Ich weiß, dass Sie gerne versuchen möchten, sich zu anonymisieren, indem Sie Daten verdecken, aber das sollten Sie wirklich nicht. Wenn Sie diese Informationen angegeben hätten, die angeben, wo Sie die Halterung montiert haben, hätten andere das Problem möglicherweise bemerkt. Verknüpfen Sie auch keine externen Websites (Pastebin), um eine Ausgabe bereitzustellen. Fügen Sie diese hier ein. Wenn Sie eine Lösung haben, geben Sie diese als Antwort an und akzeptieren Sie diese Antwort. Geben Sie nicht "gelöst" in das Thema ein.
Patrick

Antworten:

12

Wenn Sie verwenden, verwenden sudoSie wahrscheinlich die Anmeldeinformationen von root, um zu mounten, was meiner Meinung nach nicht das ist, was Sie wollen. Ich würde wahrscheinlich nicht tun, was Sie verlangen, wrt. Montage /mntals Benutzer1 und Zugriff als Benutzer2. Mit Gruppen und Benutzerberechtigungen wird es kompliziert. Wenn Sie wirklich ein Verzeichnis für die Freigabe in / mnt bereitstellen möchten, sollten Sie es für alle Benutzer über die Systemebene bereitstellen autofs.

Automounting

Es gibt drei Methoden, die mir bekannt sind, um ein Mount wie dieses automatisch zu montieren.

slm
quelle
Das war genau das Problem. Ich habe meine Frage so bearbeitet, dass sie die Schritte enthält, die ich unternommen habe, um die Berechtigungen des betreffenden Ordners zu ändern. Ich bin mir jedoch ziemlich sicher, dass dies nicht die beste Lösung ist. - Ich hatte noch nicht versucht, es zu verwenden, autofsda ich die sshfs-Verbindung vorher nicht herstellen konnte. Behaupten Sie , dass ich ein anderes Schlüsselpaar hinzufügen local:/root/.ssh/keyund remote:/[user]/.ssh/authorized_keys? Was soll das sein chownund chmodfür das local:/mnt/dirsein? (Ich möchte volle Dauerwellen für mich und nur für andere Benutzer lesen)
unteilbar
@mbs - siehe Updates
slm
1
Ist diese URL zu Autofs korrekt? Weil es falsch aussieht, wenn Sie es anfordern. Es zeigt Sport in einer nicht-englischen Sprache.
Geoffrey Anderson