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?


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

Antworten:


94

Folgendes funktioniert bei mir:

sshfs me@x.x.x.x:/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.


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

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

Dank dieser Antwort funktionierte für mich auf Arch Linux für das Mounten von Android-Dateisystem
Edward Torvalds
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.