Praca z ssh
Na zdalny serwer ssh logujemy się używając nazwy użytkownika i hasła. W konsoli wydajemy polecenie, a następnie podajemy hasło.
ssh uzytkownik@serwerAby logować się bez hasła musimy uwierzytelnić się za pomocą kluczy publicznego i prywatnego. Klucz wygenerujemy poleceniem
ssh-keygen -t rsa -C "[email protected]"Po zapytaniu o hasło możemy wpisać hasło do klucza (jest to dodatkowe zabezpiecznie) lub nic nie wpisywać i wcisnąć Enter (zostanie utworzony klucz bezhasłowy). Po wykonaniu tego polecenia, wygenerowane zostały dwa klucze. Klucz prywatny i klucz publiczny. Pierwszy został zapisany w pliku /home/user/.ssh/id_rsa i nie powinniśmy go udostępniać nikomu. Drugi zaś w pliku /home/user/.ssh/id_rsa.pub. Aby logować się teraz na zdalny serwer przy użyciu klucza musimy dodać wpis o naszym kluczu publicznym do pliku authorized_keys znajdującego się w katalogu ~/.ssh na serwerze zdalnym.
ssh-copy-id -i .ssh/id_rsa.pub uzytkownik@serwerMożna to zrobić również tak
scp ~/.ssh/id_rsa.pub uzytkownik@zdalny_host:~uzytkownik/.ssh/authorized_keyslub tak
cat .ssh/id_rsa.pub | ssh uzytkownik@zdalny_host 'cat >> .ssh/authorized_keys'Procedura w Windows opiera się na programach Putty i Puttygen. Opiszę ją w skrócie. Odsyłam do zapoznania się z pełnym opisem. Pobieramy i uruchamiamy program Putty. W zakładce Session tworzymy nową sesję ssh: wpisujemy hosta, port, wybieramy protokół ssh. W pole tekstowe poniżej Saved Sessions wpisujemy pod jaką nazwą chcemy przechowywać sesję i klikamy Save. Tak zapisaną sesję będzie można potem odtworzyć przyciskiem Load. Zanim zapiszemy sesję możemy również w zakładce Data ustalić Auto-login username, aby nie musieć przy każdym połączeniu wpisywać nazwy użytkownika. Połączenie otwieramy przyciskiem Open. Teraz możemy się logować użytkownikiem i hasłem. Jeśli chcemy używać klucza musimy go najpierw wygenerować. Służy do tego program Puttygen. Kiedy klucz zostanie wygenerowany możemy dodać do niego komentarz (zwykle nasz email) oraz hasło do klucza. Następnie klikamy Save public key i zapisujemy go w bezpiecznej lokalizacji na naszym komputerze. Podobnie zapisujemy klucz prywatny, pozostawiamy jego rozszerzenie ppk. Teraz trzeba umieścić klucz publiczny w pliku /.ssh/authorized_keys na serwerze. Logujemy się na zdalny serwer użytkownikiem i hasłem. Wykonujemy polecenia
mkdir ~/.ssh chmod 700 ~/.ssh vi ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keysTeraz ponownie uruchamiamy putty, wybieramy naszą sesję i na zakładce SSH > Auth za pomocą Browse wybieramy z dysku nasz klucz prywatny. Przechodzimy na zakładkę Session i zapisujemy sesję ponownie (Save). Możemy się już logować za pomocą klucza. Klikamy Open oraz podajemy hasło dla klucza (jeśli je utworzyliśmy).
Inne ciekawostki
Ustawienia serwera, aby nie używał logowania użytkownikiem i hasłem, a jedynie poprzez klucz publiczny. Należy wyedytować plik /etc/ssh/sshd_config i ustawić w nimProtocol 2 PasswordAuthentication no UsePAM noNastępnie zrestartować serwer.
/etc/init.d/ssh restart
SSHFS
Dzięki sshfs możemy montować zdalne systemy plików nie posiadając uprawnień roota oraz korzystać z nich prawie tak samo jak gdyby był to katalog lokalny. Poniższym poleceniem sprawdzamy czy mamy moduł fusemodprobe -lJeżeli go nie ma to instalujemy np. tak na Fedorze
yum install fuseGdy mamy już zainstalowany ładujemy go poleceniem
modprobe fuseKolejnym krokiem jest instalacja sshfs.
yum install sshfsOstatnim krokiem jest dodanie siebie do grupy fuse. W tym celu należy wyedytować plik /etc/group lub wydać polecenie
usermod -G fuse nazwa_useraMontowanie zdalnego katalogu odbywa się poprzez komendę
sshfs uzytkownik@serwer:/sciezka/do/zdalnego/katalogu ~/katalog_lokalnyW celu odmontowania używamy polecenia
fusermount -u ~/katalog_lokalnyGdy chcemy automatycznie podmontować zdalny katalog podczas ładowania systemu możemy np. w kde umieścić skrypt powłoki w katalogu /.kde4/Autostart z poleceniem montowania. W Gnome autostart wspólny dla wszystkich użytkowników mamy w katalogu /etc/xdg/autostart, dla poszczególnych w odpowiednim katalogu domowym ~/.config/autostart. Można też zarządzać programami uruchamianymi przy starcie wpisując w konsoli gnome-session-properties (więcej na stronie). Innym sposobem jest umieszczenie wpisu podobnego do poniższego w pliku /etc/fstab
sshfs#użytkownik@zdalny_serwer:/zdalny_katalog /home/użytkownik/katalog_montowania/ fuse users,noauto 0 0Następnie musimy zdefiniować samo montowanie zasobu, ale w momencie jak jest już skonfigurowana sieć. Możemy to zrobić poprzez dodanie poniższego wpisu do pliku bashrc, który zostaje wykonany gdy poprawnie się zalogujemy do systemu.
mount /katalog_montowania