Putty i SSH – bezpieczne zdalne połączenie. —
Jak podłączać się przy pomocy PuTTY do usługi SSH uruchomionej na firewallu Freesco.
Materiałów na temat SSH jest w internecie mnóstwo, więc ograniczę się tylko do niezbędnych, praktycznych szczegółów.
Freesco może pracować na komputerze pozbawionym monitora i klawiatury, często stojącym w odległym miejscu. Zarządzać systemem można przy pomocy usługi telnet, która jest standardowo obecna we Freesco. Niestety – telnet nie posiada wbudowanych mechanizmów ochronnych, m. in. przesyła hasło logowania odkrytym tekstem, przez co może być ono przechwycone i wykorzystane przez osoby trzecie. Dlatego też chyba pierwszą rzeczą do zrobienia po pomyślnym postawieniu systemu, jest zainstalowanie pakietu ssh i wyłączenie telnetu na stałe jako usługi, która od tej chwili staje się zbędna.
Pakiet openssh instalujemy standardowo, poleceniem installpkg – opis znajduje się np. na stronie z pakietami, na serwerze http://download.freesco.pl.
Open SSH posiada opcje generowania kluczy, ale przyznam szczerze, że łatwiej było mi skorzystać z programu puttygen, więc do niego się ograniczę.
Pobieramy więc puttygen.exe, np. z adresu www.chiark.greenend.org.uk/~sgtatham/putty/download) i uruchamiamy go. W oknie konfiguracyjnym wybieramy najpierw rodzaj klucza. (Przyznam szczerze, że udało mi się zmusić do pracy z PuTTY tylko SSH 1 i SSH2/DSA; wygenerowanego klucza SSH2/RSA PuTTY przyjąć nie chce…). Teraz naciskamy klawisz ‘Generate’ i ruszamy myszą w obrębie szarego pola, aby dostarczyć programowi trochę liczb losowych. Gdy uzbiera się ich odpowiednio dużo, program wygeneruje parę kluczy – publiczny i prywatny.
Klucz prywatny zapisujemy na dysku komputera, z którego łączyć się będziemy z Freesco – należy strzec tego pliku – będzie on przepustką do naszego firewalla. Dobrze jest też zabezpieczyć go hasłem (nie musi ono mieć nic wspólnego z hasłem konta, na które będziemy się logować – wręcz przeciwnie).
Natomiast klucz publiczny musimy przekazać na serwer Freesco. W tym celu zaznaczamy go w okienku puttygen (dokładnie i w całości) i kopiujemy do schowka (Ctrl+C). Teraz łączymy się przy pomocy PuTTYz firewallem (np. jeszcze poprzez usługę telnet) i przechodzimy do foldera /mnt/router/packages/opensshd/etc. W tym katalogu tworzymy teraz plik o nazwie ‘authorized_keys’ i otwieramy go do edycji (można odwrotnie: uruchomić edytor, a na końcu zapisać plik pod tą nazwą). W edytorze wklejamy zawartość schowka do otwartego pliku, klikając w obrębie ekranu PuTTY prawym klawiszem myszy. Wklejany ciąg znaków klucza powinien utworzyć jedną, długą linię. (Jeśli wygenerowaliśmy więcej par kluczy, kolejne klucze publiczne wklejamy w kolejnych liniach). Jeśli nie chcemy korzystać z hasła konta na serwerze Freesco przy logowaniu (a tylko z klucza prywatnego, który mamy na dysku) musimy teraz otworzyć plik ssh_config. Znajdujemy w nim linie RSAAuthentication i PasswordAuthentication i nadajemy im brzmienie:
RSAAuthentication yes PasswordAuthentication no
Zapisujemy plik, zamykamy edytor restartujemy sshd i wylogowujemy się ze zdalnej sesji (Ctrl+d).
Teraz musimy skon figurować PuTTY do korzystania z klucza. Uruchamiamy program, definiujemy połączenie: podajemy adres hosta, port ssh (przeważnie 22), po czym przechodzimy do opcji SSH – wybieramy typ protokołu SSH (1 lub 2), uaktywniamy kompresję, a w opcji ‘SSH/AUTH’ podajemy ścieżkę dostępu do naszego pliku z kluczem prywatnym. Jeśli chcemy, aby łączenie przebiegało całkowicie automatycznie, musimy jeszcze przejść do opcji ‘Connection’ i w polu ‘Auto-login username’ wpisać nazwę użytkownika, na którego konto będziemy się logować.
Na koniec wracamy do pozycji ‘Session’, zapisujemy sesję pod jakąś nazwą i naciskamy klawisz ‘Open’.
Putty nawiąże teraz połączenie z serwerem, opcjonalnie pytając o hasło do klucza prywatnego i … miłej zabawy.
Jeśli chcemy pełnej automatyki przy otwieraniu połączenia, możemy w linii poleceń skrótu do PuTTY umieścić nazwę sesji do otwarcia w postaci
c:…putty.exe @nazwasesji
spowoduje to automatyczne wybranie przez PuTTY sesji zapisanej pod nazwą umieszczoną po znaczku @. Można to wykorzystać do wysyłania do Freesco jakiegoś polecenia przy pomocy kliknięcia ikonki; komendę tę umieszczamy w konfiguracji PuTTY w gałęzi SSH/Data send to the server/remote command.
P.S. Pod adresem http://drvandv.com/freesco/VNC można znaleźć opis wykorzystania OpenSSH i PuTTY do tunelowania połączeń VNC z internetu do komputerów za firewallem. Tłumaczenie dokumentu jest dostępne na stronach www.freesco.arx.pl.
Uzupełnienie Dla użytkowników Linuksa posługiwanie się protokołem ssh w konsoli nie jest niczym trudnym, więc nie warto tworzyć szczegółowych opisów. Natomiast użytkownikom Windows na pewno warto polecić putty jako świetny program do zdalnego dostępu.
Jednak metody autora – czyli logowanie na podstawie klucza nie polecałbym. Podczas instalacji pakietu ssh (obecnie najnowszy pakiet to wersja 3.7p1) mamy możliwość wygenerowania klucza i radziłbym z tego skorzystać. W opcjach ssh nie ustawiamy logowania bez hasła, a raczej sugerowałbym zabronić logowania rootowi ( używać za to su)
Podczas pierwszego logowania w putty program pobierze sobie klucz z serwera i potem będzie z niego korzystał. Rozwiązanie to ma tę zaletę, że w razie padu systemu i ponownym przeinstalowaniu Windows (co średnio zdarza się raz na miesiąc :>) nie będziemy mieli kłopotów z zalogowaniem się do serwera. No i będzie to bezpieczniejsze przy użyciu hasła.
przypis dodany 21-12-03 przez: W.T.
Autor: Andrzej Januszkiewicz Data: 2002-09-12 00:00:00