Come specificare la chiave in SSHFS?


70

Ho una domanda per la quale non sono riuscito a trovare una risposta. Ho due computer, entrambi con Ubuntu Linux 12.04. Ho impostato il mio primo computer ("home") in modo da poter SSH nel mio secondo computer ("remote") utilizzando l'autenticazione chiave RSA pubblica / privata.

Questa non è la prima connessione SSH che è stata impostata utilizzando l'autenticazione con chiave sul mio computer di casa, quindi il mio computer di casa ha diversi file di chiavi private id_rsa (ognuno dei quali è per un computer diverso in SSH). Pertanto, sono in grado di eseguire correttamente SSH solo quando specifico un file di chiavi (in ssh, l' -iopzione), utilizzando ssh username@ipaddress -i path/to/keyfile/id_rsa.2.

Funziona benissimo. Tuttavia, vorrei anche usare sshfs, che monta il filesystem remoto. Anche se sshsembra funzionare bene con più chiavi, non riesco a trovare un modo sshfsper usare la chiave privata corretta ("id_rsa.2").

C'è un modo sshfsper farlo?


Il portachiavi funziona bene per me in questo scenario ...
Jasonwryan,

Risposte:


94

Ecco cosa funziona per me:

sshfs me@x.x.x.x:/remote/path /local/path/ -o IdentityFile=/path/to/key

Puoi capirlo tramite man sshfs:

-o SSHOPT = VAL opzioni ssh (vedi man ssh_config)

man ssh_config

IdentityFile

Specifica un file dal quale viene letta l'identità di autenticazione DSA, ECDSA o DSA dell'utente.


1
Grazie! @goldilocks, ho perso completamente la linea IdentityFile nella sshfspagina man. È esattamente quello che cercavo. Ho appena provato la tua soluzione e funziona perfettamente. Apprezzo l'aiuto!
JL

1
Questo comando non funziona su macOS Sierra
basZero il

1
IdentityFilenota del percorso. Se in esecuzione sshfscon sudo, l'utilizzo ~nel IdentityFilepercorso si riferisce alla home della radice, che potrebbe non essere dove si trova il file RSA. Usa /Users/<username>/.sshinvece qualcosa di simile .
Aaron,

20

Quello che devi fare è specificare quale chiave privata usare nel ~/.ssh/configfile. per esempio:

Host server1.nixcraft.com
    IdentityFile ~/backups/.ssh/id_dsa
Host server2.nixcraft.com
    IdentityFile /backup/home/userName/.ssh/id_rsa

1
Grazie mille! @Steven You, non mi rendevo conto che sshfslegge i file .ssh / config (anche se ora vedo che ho perso una risposta simile dal precedente post di qualcuno, su stackoverflow.com/a/13638806/1940466 ). È eccellente da sapere. Per quello che vale, vorrei accettare le risposte sia tua che @goldilocks, ma non ci riesco. Inoltre non ho abbastanza reputazione per votare la tua risposta. Apprezzo molto la risposta, però!
JL

3
sshfs -o ssh_command='ssh -i path/to/keyfile/id_rsa.2' username@ipaddress:/path /local/path

grazie questa risposta ha funzionato per me su Arch Linux per il montaggio del file system Android
Edward Torvalds il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.