SSH (Secure Shell) jest programem, służącym do logowania na zdalną maszynę i pozwalającym na wykonywanie komend na niej. Zastępuje takie programy jak rlogin i rsh i zapewnia szyfrowaną komunikację między komputerami. Obecnie SSH można spotkać w dwóch wersjach 1 i 2 (niekompatybilnych ze sobą) w zależności od używanego protokołu.

Open SSH zapewnia wsparcie dla obu wersji protokołu SSH !!!

Instalacja

Pierwszą rzeczą, którą należy zrobić to instalacja Open SSL. (pod warunkiem, że nie zainstalowałeś jej wcześniej).

Aby instalacja była możliwa, musisz mieć już zainstalowanego Perl'a (no ale to chyba masz, bo każdy przedszkolak wie, że bez Perl'a żyć nie można), kompilator ANSI C (no ale to chyba też masz, bo każdy przedszkolak wie ... itd. )
Open SSL jest narzędziem implementującym protokoły SSL (Secure Sockets Layer v2/v3) i TLS (Transport Layer Security v1) i związane z nimi standardy kryptograficzne.
Open SSL możesz pobrać z tej strony. Po rozpakowaniu ( tar -xzvf openssl-0.9.6.tar.gz) archiwum, wejdź do katalogu openssl-0.9.6 (wersja, będzie oczywiście inna) i wykonaj:

./config
make
make test
make install

Jeżeli chcesz przeprowadzić nietypową instalację, zachęcam do lektury pliku INSTALL.

Jeżeli nie masz zainstalowanego zlib'a, jest to najlepsza pora, aby go zainstalować. Oprogramowanie to możesz pobrać z tej strony. Zlib jest biblioteką umożliwiającą kompresję i dekompresję 'w pamięci'. Wersja 1.1.3 jako metodę kompresji wykorzystuje deflację, lecz autorzy zapowiadają, że w przyszłych wersjach będą stosowane również inne algorytmy.
Podobnie jak w przypadku Open SSL, rozpakuj archiwum, przejdź do rozpakowanego katalogu i :

./configure
make
make test
make install

Została jeszcze instalacja OpenSSH. Najnowszą wersję tego oprogramowania możesz pobrać z tej strony.
Instalacja, jest równie prosta jak poprzednie. Rozpakowanie i tradycyjnie w katalogu z SSH wydajemy komendy:

./configure
make
make install

Jeżeli przeprowadzisz taką standardową instalację, to pliki konfiguracyjne zostaną umieszczone w /usr/local/etc, binarne w /usr/local/bin a serwer w /usr/local/sbin. Jeżeli chcesz umieścić pliki w jakimś innym katalogu, lub zastosować dodatkowe opcje (a jest ich sporo) przeczytaj plik INSTALL.
W tym momencie mamy już wszystko co trzeba aby korzystać z SSH.
Jeżeli na swoim komputerze zamierzasz uruchomić serwer SSH, zajrzyj do pliku /usr/local/etc/sshd_config i wprowadź w nim odpowiednie modyfikacje. Nie będę tu w całości opisywał co trzeba zmienić, bo zrobisz to sam(a) bez żadnych problemów. Najważniejsze rzeczy to:

*Protocol 1,2 (włączasz obsługę protokołów 1 i 2)
*Port 22 (port domyślny)
*PermitRootLogin no (root nie może się logować przy pomocy SSH)
*KeepAlive yes (serwer ma wysyłać pakiety kontrolne)

Jeżeli serwer ma startować automatycznie przy uruchomianiu komputera, pamiętaj o dodaniu odpowiedniego wpisu do odpowiedniego pliku rc.
Np. wpisz:
/usr/local/sbin/sshd -f /usr/local/etc/sshd_config
do pliku /etc/rc.d/rc.local
Więcej informacji znajdziesz w man'ie (man ssh).

Jak z tego wszystkiego korzystać ????
Bardzo prosto.
Jeżeli korzystasz z protokołu pierwszego:
W katalogu domowym utwórz katalog .ssh
Wydaj komendę ./configssh-keygen - zostanie wygenerowana para kluczy (publiczny: identity.pub i prywatny identity obydwa powstaną w katalogu .ssh). W trakcie generowania kluczy zostaniesz zapytany o hasło do klucza prywatnego, jeżeli wciśniesz ENTER, klucz prywatny nie będzie chroniony hasłem. Idea SSH jest taka, że serwer zna twój klucz publiczny, natomiast tylko ty znasz swój klucz prywatny. W pliku $HOME/.ssh/authorized_keys znajdują się klucze publiczne, które pozwalają na zalogowanie. Więc jeżeli na swoim komputerze uruchamiasz serwer SSH i chcesz się z nim połączyć z odległego komputera to skopiuj plik identity.pub pod nazwę authorized_keys. Kiedy będziesz się logował serwer sprawdzi czy twojego klucza można użyć, jeżeli tak to wyśle numer zaszyfrowany twoim kluczem publicznym, który może być odszyfrowany tylko za pomocą twojego klucza prywatnego.

Jeżeli korzystasz z protokołu drugiego:
Zasada jest podobna. Trzeba wygenetować parę kluczy, ale tym razem zostanie użyty algorytm DSA zamiast RSA.
Klucze generujesz poleceniem:

ssh-keygen -t dsa
Zostaną wygenerowane dwa klucze: id_dsa - twój klucz prywatny i id_dsa.pub - twój klucz publiczny. I tutaj podobnie, komputer na który chcesz się zalogować musi znać twój klucz publiczny. Dlatego musisz skopiować do niego (do twojego katalogu domowego na tym komputerze, a dokładnie do podkatalogu .ssh w twoim katalogu domowym twój klucz publiczny i nadać mu nazwę authorized_keys2 (w przypadku SSH 1 - był to authorized_keys)
Jak zalogować się na zdalny komputer ???
Jeżeli wykonałeś(łaś) wszystkie czynności opisane wyżej, czas na logowanie. Wpisz:
ssh twój_login@zdalny_komputer
Jeżeli, twój klucz prywatny jest chroniony hasłem, będziesz musiał je teraz wprowadzić. I już jesteś zalogowany !!!!
Jeżeli chcesz użyć protokołu drugiego powyższa komenda powinna wyglądać tak:

ssh -2 twój_login@zdalny_komputer
A co z Winzgrozą, znaczy się z systemem operacyjnym Windows ???
Jeżeli korzystasz z tego systemu, również możesz zalgować się na zdalny komputer. Oczywiście, będziesz musiał zainstalować sobie oprogramowanie klienta, które ci to umożliwi. Oczywiście większość takiego oprogramowania wymaga opłat licencyjnych, jest jednak (o dziwo) całkiem przyzwoity darmowy klient SSH pod Windows 9x/NT. Nazywa sie putty i możesz go ściągnąć z tej strony. Plik identity (lub id_dsa) skopiuj na dyskietkę. Po uruchomieniu programu putty wybierz protokół SSH, wpisz nazwę komputera z którym chcesz się łączyć, a także podaj ścieżkę do twojego klucza prywatnego: A:\identity (lub A:\id_dsa) i już możesz się logować.

Wszystkie informacje zawarte na tej stronie, stanowią tylko czubek góry lodowej. Zachęcam do lektury dokumentacji, ponieważ Open SSH umożliwia wiele ciekawych rzeczy, o których najmądrzejszym mózgowcom się nie śniło ... :-)



** Jacek Seń **


MENU LINUX