Wie spezifiziere ich den Schlüssel in SSHFS?

70

Ich habe eine Frage, auf die ich keine Antwort gefunden habe. Ich habe zwei Computer, auf denen beide Ubuntu Linux 12.04 ausführen. Ich habe meinen ersten Computer ("zu Hause") so eingerichtet, dass er mithilfe der öffentlichen / privaten RSA-Schlüsselauthentifizierung eine SSH-Verbindung zu meinem zweiten Computer ("remote") herstellen kann.

Dies ist nicht die erste SSH-Verbindung, die mithilfe der Schlüsselauthentifizierung auf meinem Heimcomputer eingerichtet wurde. Daher verfügt mein Heimcomputer über mehrere private id_rsa-Schlüsseldateien (von denen sich jede auf einen anderen Computer bezieht, in den SSH ausgeführt werden soll). Daher kann ich nur dann erfolgreich SSH durchführen, wenn ich eine Schlüsseldatei (in ssh, die -iOption) mit ssh username@ipaddress -i path/to/keyfile/id_rsa.2.

Das funktioniert super Ich möchte aber auch verwenden sshfs, welches das entfernte Dateisystem einbindet. Während sshscheint mit mehreren Schlüsseln schön zu spielen, kann ich nicht einen Weg finden , um sshfsden richtigen privaten Schlüssel ( „id_rsa.2“) zu verwenden.

Gibt es eine Möglichkeit, dies sshfszu tun?

J L
quelle
Schlüsselbund funktioniert gut für mich in diesem Szenario ...
Jasonwryan

Antworten:

94

Folgendes funktioniert bei mir:

sshfs [email protected]:/remote/path /local/path/ -o IdentityFile=/path/to/key

Sie können dies herausfinden über man sshfs:

-o SSHOPT = VAL ssh options (siehe man ssh_config)

man ssh_config

IdentityFile

Gibt eine Datei an, aus der die DSA-, ECDSA- oder DSA-Authentifizierungsidentität des Benutzers gelesen wird.

Goldlöckchen
quelle
1
Danke! @goldilocks, ich habe die IdentityFile-Zeile in der sshfsManpage komplett verpasst . Genau das habe ich auch gesucht. Ich habe gerade Ihre Lösung ausprobiert und sie funktioniert einwandfrei. Ich bedanke mich für die Hilfe!
JL
1
Dieser Befehl funktioniert nicht unter macOS Sierra
basZero
1
IdentityFilePfadangabe. Wenn Sie sshfsmit ausführen, bezieht sich sudousing ~im IdentityFilePfad auf das Stammverzeichnis, in dem sich die RSA-Datei möglicherweise nicht befindet. Verwenden Sie /Users/<username>/.sshstattdessen etwas wie .
Aaron
20

Sie müssen lediglich angeben, welcher private Schlüssel in der ~/.ssh/configDatei verwendet werden soll. zum Beispiel:

Host server1.nixcraft.com
    IdentityFile ~/backups/.ssh/id_dsa
Host server2.nixcraft.com
    IdentityFile /backup/home/userName/.ssh/id_rsa
Steven Du
quelle
1
Vielen Dank! @Steven Sie, ich wusste nicht, dass sshfs.ssh / config-Dateien gelesen werden (obwohl ich jetzt sehe, dass ich eine ähnliche Antwort aus dem vorherigen Beitrag von jemandem unter stackoverflow.com/a/13638806/1940466 verpasst habe ). Das ist gut zu wissen. Für das, was es wert ist, würde ich gerne sowohl die Antworten von Ihnen als auch von @goldilocks akzeptieren, aber ich bin nicht in der Lage dazu. Ich habe auch nicht genug Ruf, um Ihre Antwort abzustimmen. Ich freue mich sehr über die Antwort!
JL
3
sshfs -o ssh_command='ssh -i path/to/keyfile/id_rsa.2' username@ipaddress:/path /local/path
user278801
quelle
Dank dieser Antwort funktionierte für mich auf Arch Linux für das Mounten von Android-Dateisystem
Edward Torvalds