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
fuse
Gruppe hinzugefügt . - Ich habe mein lokales bearbeitet, um
~/.ssh/config
zu 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/config
mit 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 = publickey
in ~ / .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_dir
und gemacht sudo chmod 774 /mnt/new_dir
und 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 fuse
Gruppe.
quelle
-o ssh_command='ssh -v'
Befehl hängt nur und gibt nichts aussshfs -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?Antworten:
Wenn Sie verwenden, verwenden
sudo
Sie 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/mnt
als 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 bereitstellenautofs
.Automounting
Es gibt drei Methoden, die mir bekannt sind, um ein Mount wie dieses automatisch zu montieren.
quelle
autofs
da ich die sshfs-Verbindung vorher nicht herstellen konnte. Behaupten Sie , dass ich ein anderes Schlüsselpaar hinzufügenlocal:/root/.ssh/key
undremote:/[user]/.ssh/authorized_keys
? Was soll das seinchown
undchmod
für daslocal:/mnt/dir
sein? (Ich möchte volle Dauerwellen für mich und nur für andere Benutzer lesen)