Jak określić klucz w SSHFS?

69

Mam pytanie, na które nie byłem w stanie znaleźć odpowiedzi. Mam dwa komputery, z których oba uruchamiają system Ubuntu Linux 12.04. Skonfigurowałem swój pierwszy komputer („domowy”), aby móc połączyć się z drugim komputerem („zdalnym”) przy użyciu uwierzytelniania publicznego / prywatnego klucza RSA.

To nie jest pierwsze połączenie SSH, które zostało skonfigurowane przy użyciu uwierzytelniania klucza na moim komputerze domowym, więc mój komputer domowy ma kilka prywatnych plików kluczy id_rsa (z których każdy jest przeznaczony dla innego komputera niż SSH). Tak więc jestem w stanie pomyślnie SSH tylko wtedy, gdy określę plik klucza (w ssh, -iopcja), używając ssh username@ipaddress -i path/to/keyfile/id_rsa.2.

To działa świetnie. Chciałbym jednak również użyć sshfs, który montuje zdalny system plików. Chociaż sshwydaje się, że gra się dobrze z wieloma kluczami, nie mogę znaleźć sposobu sshfsna użycie poprawnego klucza prywatnego („id_rsa.2”).

Czy jest na to sposób sshfs?

J L
źródło
Brelok działa dla mnie dobrze w tym scenariuszu ...
jasonwryan

Odpowiedzi:

94

Oto, co działa dla mnie:

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

Możesz to rozwiązać za pomocą man sshfs:

-o SSHOPT = VAL opcje ssh (patrz man ssh_config)

man ssh_config

IdentityFile

Określa plik, z którego odczytywana jest tożsamość uwierzytelnienia DSA, ECDSA lub DSA użytkownika.

Złotowłosa
źródło
1
Dziękuję Ci! @Goldilocks, całkowicie przegapiłem wiersz IdentityFile na sshfsstronie podręcznika . Właśnie tego szukałem. Właśnie wypróbowałem twoje rozwiązanie i działa idealnie. Doceniam pomoc!
JL
1
To polecenie nie działa w systemie macOS Sierra
basZero,
1
IdentityFileuwaga do ścieżki. Jeśli korzystasz sshfsz sudo, użycie ~w IdentityFileścieżce odnosi się do katalogu głównego roota, który może nie znajdować się w pliku RSA. /Users/<username>/.sshZamiast tego użyj czegoś takiego .
Aaron,
19

Musisz określić, którego klucza prywatnego użyć w ~/.ssh/configpliku. na przykład:

Host server1.nixcraft.com
    IdentityFile ~/backups/.ssh/id_dsa
Host server2.nixcraft.com
    IdentityFile /backup/home/userName/.ssh/id_rsa
Steven You
źródło
Dzięki wielkie! @Steven You, nie zdawałem sobie sprawy z tego, że sshfsczyta pliki .ssh / config (choć teraz widzę, że przegapiłem podobną odpowiedź z czyjegoś postu, na stackoverflow.com/a/13638806/1940466 ). To wspaniale wiedzieć. Za to, co jest warte, chciałbym zaakceptować zarówno twoje, jak i @goldilocks odpowiedzi, ale nie jestem w stanie. Nie mam też wystarczającej reputacji, aby zagłosować na twoją odpowiedź. Jednak bardzo doceniam odpowiedź!
JL
3
sshfs -o ssh_command='ssh -i path/to/keyfile/id_rsa.2' username@ipaddress:/path /local/path
użytkownik 278801
źródło
dzięki, że ta odpowiedź działała dla mnie na Arch Linux dla montowania systemu plików Androida
Edward Torvalds