sshfs nie użyje ~ / .ssh / config (w Linux Mint 15)

10
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

Usiłuję skonfigurować pozbawione hasła montowanie zdalnego serwera przy użyciu sshfs i bezpiecznika. Serwer zdalny działa na niestandardowym porcie i do uwierzytelnienia będę używał pary kluczy ssh.

Gdy się powiedzie, powtórzę to dla trzech kolejnych zdalnych serwerów, każdy z innym kluczem, więc muszę być w stanie określić, który klucz mapuje na który serwer zdalny.

Oparłem swoje modyfikacje na tym samouczku

  • Klucz publiczny znajduje się w zdalnym kluczu autoryzowanym
  • Dodałem mojego lokalnego użytkownika do fusegrupy.
  • Edytowałem mój lokalny, ~/.ssh/configaby mieć (na serwer):

`

Host [server_ip]
  Port = [port]
  IdentityFile  = "~/.ssh/[private_key]"
  User = "[user]"

`

Ilekroć próbuję zamontować zdalny serwer lokalnie, pojawia się monit o hasło użytkownika zdalnego (nie hasło mojego klucza prywatnego). Zdalny użytkownik ma długie, losowo generowane hasło, którego nie chciałbym zapisywać ani zapamiętywać, więc klucze to sposób, w jaki chcę to zrobić.

Mogę połączyć się za pośrednictwem ssh (w połączeniu z ~/.ssh/configplikiem) za pomocą polecenia, ssh [ip]dzięki czemu wiem, że plik konfiguracyjny można odczytać poprawnie, ponieważ jestem proszony o hasło mojego klucza, a nie użytkownika zdalnego.

Aby nawet spróbować połączyć się ze zdalnym serwerem, muszę ręcznie określić pełne szczegóły połączenia w poleceniu: `sshfs [użytkownik] @ [ip]: [ścieżka_zdalna] [ścieżka_lokalna] -p [port]

Co próbowałem do tej pory:

  • ssh-add / path / to / key (pomyślne dodanie)
  • Określanie PreferredAuthentication = publickeyw ~ / .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 zmień nazwę klucza na default id_rsa
  • sshfs -F ~ / .ssh / config

Czy istnieje jakiś zdalny lub lokalny plik konfiguracyjny, który pomijam? Jakiś przełącznik lub opcja, którą muszę zawrzeć w wywołaniu sshfs (wypróbowałem -F), aby zmusić go do odczytu i używania mojej konfiguracji ssh?

Wyjście z ssh -v -p [port] [user]@[remote_ip]

OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 maja 2012 r
debug1: Odczytywanie danych konfiguracyjnych /home/[me]/.ssh/config
debug1: /home/[me]/.ssh/config wiersz 2: Stosowanie opcji dla [remote_ip]
debug1: /home/[me]/.ssh/config wiersz 24: Stosowanie opcji dla *
debug1: odczyt danych konfiguracyjnych / etc / ssh / ssh_config
debug1: / etc / ssh / ssh_config wiersz 19: Stosowanie opcji dla *
debug1: Łączenie z [remote_ip] [[remote_ip]] port [port].
debug1: Połączenie ustanowione.
debug1: plik tożsamości /home/[me]/.ssh/[private_key] typ 2
debug1: Sprawdzanie pliku czarnej listy /usr/share/ssh/blacklist.DSA-1024
debug1: Sprawdzanie pliku czarnej listy /etc/ssh/blacklist.DSA-1024
debug1: plik tożsamości /home/[me]/.ssh/[private_key]-cert typ -1
debug1: Zdalny protokół w wersji 2.0, zdalna wersja oprogramowania OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: dopasowanie: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH_5 *
debug1: Włączanie trybu zgodności dla protokołu 2.0
debug1: Ciąg wersji lokalnej SSH-2.0-OpenSSH_6.1p1 Debian-4
debug1: wysłano SSH2_MSG_KEXINIT
debug1: otrzymano SSH2_MSG_KEXINIT
debug1: kex: server-> klient aes128-ctr hmac-md5 [email protected]
debug1: kex: client-> server aes128-ctr hmac-md5 [email protected]
debug1: wysyłanie SSH2_MSG_KEX_ECDH_INIT
debug1: oczekiwanie SSH2_MSG_KEX_ECDH_REPLY
debug1: klucz hosta serwera: [klucz]
debug1: sprawdzanie bez identyfikatora portu
debug1: Host „[remote_ip]” jest znany i pasuje do klucza hosta ECDSA.
debug1: Znaleziono klucz w /home/[me]/.ssh/known_hosts:7
debug1: znaleziono pasujący klucz bez portu
debug1: ssh_ecdsa_verify: poprawny podpis
debug1: wysłano SSH2_MSG_NEWKEYS
debug1: oczekiwanie SSH2_MSG_NEWKEYS
debug1: odebrano SSH2_MSG_NEWKEYS
debug1: Roaming niedozwolony przez serwer
debug1: wysłano SSH2_MSG_SERVICE_REQUEST
debug1: otrzymano SSH2_MSG_SERVICE_ACCEPT
debug1: Uwierzytelnienia, które można kontynuować: klucz publickey, hasło
debug1: Następna metoda uwierzytelnienia: publickey
debug1: Oferowanie klucza publicznego DSA: /home/[me]/.ssh/[private_key]
debug1: Serwer akceptuje klucz: pkalg ssh-dss blen 433
debug1: Włączanie kompresji na poziomie 6.
debug1: Uwierzytelnianie powiodło się (publickey).
Uwierzytelniono w [zdalny_ip] ([[zdalny_ip]]: [port]).
debug1: kanał 0: nowy [sesja klienta]
debug1: Żądanie [email protected]
debug1: Wejście do sesji interaktywnej.
debug1: środowisko wysyłania.
debug1: Wysyłanie env LANG = en_GB.UTF-8
debug1: Wysyłanie env LC_CTYPE = en_GB.UTF-8
Witamy w Ubuntu 12.04.3 LTS (GNU / Linux 3.10.9-xxxx-std-ipv6-64 x86_64)

Edycja:
Znalazłem problem. Próbowałem zamontować zdalną lokalizację w katalogu / mnt / new_dir przy użyciu sudo. Jeśli podłączę się do lokalizacji w moim lokalnym domu, to zadziała. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount.

Mam teraz zrobił sudo chown root:fuse /mnt/new_diri sudo chmod 774 /mnt/new_diri wierzę, że wszystko działa zgodnie z przeznaczeniem.

Czy są jakieś problemy z bezpieczeństwem związane z tą konfiguracją, o których muszę wiedzieć? (Mój użytkownik i root są jedynymi członkami fusegrupy.

niepodzielny
źródło
Cześć MBS, możesz uruchomić ssh za pomocą przełącznika -v, aby wyświetlić ewentualne błędy. warto to zrobić, aby sprawdzić, czy podczas odczytu pliku wystąpił błąd. Ponadto klucze na serwerze docelowym powinny mieć 600 uprawnień.
Rqomey
Dziękuję za szybką odpowiedź. ssh verbose: pastebin.com/Rm5X7y5p (Wrócę z sshfs verbose za minutę
niepodzielny
sshfs używający -o ssh_command='ssh -v'polecenia po prostu zawiesza się i nic nie wyświetla
niepodzielny
Myślę, że mogłem znaleźć problem (a przynajmniej zbliżyć się do niego). Próbowałem zamontować zdalną lokalizację w katalogu / mnt / new_dir przy użyciu sudo. Jeśli podłączę się do lokalizacji w moim lokalnym domu, to zadziała. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount. Czy mogę skonfigurować mojego użytkownika, aby posiadał niezbędne uprawnienia do montowania na / mnt, aby inni użytkownicy mogli korzystać ze zdalnych zasobów?
niepodzielny
1
Widzę, że jesteś nowy w stosie wymiany, więc witaj. Ale kilka wskazówek: wiem, że lubisz próbować anonimizować się przez zasłanianie danych, ale tak naprawdę nie powinieneś. Gdybyś podał trochę informacji wskazujących, gdzie montowałeś mounta, inni mogliby zauważyć problem. Nie należy także umieszczać linków do zewnętrznych stron (pastebin) w celu dostarczenia danych wyjściowych. Wreszcie, jeśli masz rozwiązanie, podaj je jako odpowiedź i zaakceptuj tę odpowiedź, nie wpisuj „rozwiązany” w temacie.
Patrick

Odpowiedzi:

13

Jeśli używasz, sudoto prawdopodobnie używasz poświadczeń root'a do montowania, co nie uważam za to, czego chcesz. Prawdopodobnie nie zrobiłbym tego, o co prosisz, wrt. montowanie /mntjako użytkownik 1 i dostęp jako użytkownik 2. Skomplikuje się to z uprawnieniami grup i użytkowników. Jeśli naprawdę chcesz zamontować katalog do / mnt, aby go udostępnić, naprawdę powinieneś go montować za pośrednictwem poziomu systemu dla wszystkich autofs.

Automounting

Istnieją 3 metody, których jestem świadom, do automatycznego montowania takiego montażu.

slm
źródło
To był dokładnie problem. Zredagowałem swoje pytanie, aby uwzględnić kroki, które podjąłem, aby zmodyfikować uprawnienia do danego folderu, ale chociaż działa, jestem pewien, że nie jest to najlepsze rozwiązanie. - Nie próbowałem autofsjeszcze używać, ponieważ nie byłem w stanie nawiązać połączenia sshfs wcześniej. Czy sugerujesz dodanie kolejnej pary kluczy do local:/root/.ssh/keyi remote:/[user]/.ssh/authorized_keys? Co powinno być chowni chmodbyć na local:/mnt/dirzawsze? (Chcę pełne perms dla siebie i czytać tylko dla innych użytkowników)
niepodzielny
@mbs - zobacz aktualizacje
slm
1
Ten adres URL do autofs, czy jest poprawny? Ponieważ wygląda niepoprawnie, gdy o to poprosisz. Pokazuje sport w nieangielskim języku.
Geoffrey Anderson