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
fuse
grupy. - Edytowałem mój lokalny,
~/.ssh/config
aby 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/config
plikiem) 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 = publickey
w ~ / .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_dir
i sudo chmod 774 /mnt/new_dir
i 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 fuse
grupy.
źródło
-o ssh_command='ssh -v'
polecenia po prostu zawiesza się i nic nie wyświetlasshfs -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?Odpowiedzi:
Jeśli używasz,
sudo
to 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/mnt
jako 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 wszystkichautofs
.Automounting
Istnieją 3 metody, których jestem świadom, do automatycznego montowania takiego montażu.
źródło
autofs
jeszcze używać, ponieważ nie byłem w stanie nawiązać połączenia sshfs wcześniej. Czy sugerujesz dodanie kolejnej pary kluczy dolocal:/root/.ssh/key
iremote:/[user]/.ssh/authorized_keys
? Co powinno byćchown
ichmod
być nalocal:/mnt/dir
zawsze? (Chcę pełne perms dla siebie i czytać tylko dla innych użytkowników)