W mojej pracy często loguję się do wielu serwerów przy pomocy genialnego narzędzia, jakim jest putty. Ten idealny pod (prawie)każdym względem program ma jedną wadę – nie ma tabów (jak firefox) więc żeby nie przesadzić z ilością otwartych okien, trzeba je co jakiś czas zamykać. Ponowne logowanie się, szukanie wymyślonego przez administrację 20 znakowego hasła marnuje masę czasu. Za każdym razem. W związku z tym trzeba sobie radzić w jakiś inny sposób. Opiszę konfigurację, jaką stosuje – może przyda się ona komuś – oszczędza mi ona codziennie dużo czasu. Więc po kolei …

Generujemy klucz

Z oficjalnej strony programu (link) pobieramy (poza samym programem oczywiście) dwa programy: Pageant oraz PuTTYgen. Pierwszy służy do autentykacji na serwerze a drugi do wygenerowania klucza, którym będziemy się posługiwać.

Po pobraniu uruchamiamy PuTTYgen i generujemy klucz w kilku prostych krokach – trzeba je zrobić tylko raz:

  1. W środkowej części interfejsu jest przycisk „Generate”. Należy go wcisnąć i ruszać myszką do momentu, gdy pasek zniknie – mamy wygenerowaną parę kluczy: publiczny i prywatny.
    Okno programu
  2. W polu key passphrase wpisujemy hasło do otwarcia klucza. Tym hasłem będzie można otworzyć klucz i załadować go do pamięci drugiego programu. Hasło należy wybrać odpowiednio trudne: przejęcie klucza prywatnego da potencjalnemu atakującemu dostęp do wszystkich serwerów, w których jest zapisany klucz!
    W polu potwierdzenia wpisujemy ponownie hasło.
  3. Przycisk Save public key zapisuje nam publiczną część klucza – ona będzie wgrana na serwer w następnym kroku.
  4. Przycisk Save private key zapisuje prywatny klucz, którym przedstawiać się będzie nasze putty.
  5. Treść w górnej sekcji programu – dziwny i nierozpoznawalny ciąg znaków – można zaznaczyć myszką i skopiować do schowka – przyspieszy to następne punkty.

Przygotowanie serwera

Ten krok może wymagać ingerencji administratora serwera – w przypadku gdy jest on skonfigurowany w jakiś inny niż domyślny sposób.

Na serwerze, do którego chcemy się logować automatycznie, znajduje się plik authorized_keys w folderze .ssh w katalogu domowym.

Do pliku tego należy wstawić publiczny klucz, który przed chwilę został wygenerowany. Otwieramy plik przy pomocy ulubionego edytora – w mim przypadku mcedit – i wklejamy wygenerowany klucz (powinien być w schowku zgodnie z pkt 5 poprzedniej sekcji).

Po upewnieniu się, że na końcu pliku jest znak nowej linii, zamykamy go.

Operacje powtarzamy na wszystkich serwerach, do których chcemy mieć automatyczne logowanie.

Przygotowanie klienta – wczytywanie klucza

Do pobranego programu Pageant tworzymy skrót na pulpicie o dowolnej nazwie. Następnie edytujemy jego właściwości, dodając parametry dodatkowe.

W polu ze ścieżką do programu trzeba dodać ścieżkę, do klucza który ma się załadować automatycznie. Można podać kolejne klucze, jeżeli mamy już jakiś klucz dostarczony przez administrację lub chcemy logować się automatycznie do prywatnych maszyn używając innego klucza. Jeżeli program lub klucz jest zapisany w lokalizacji, która zawiera spacje w ścieżce to każdą ścieżkę trzeba objąć znakami cudzysłowu – osobno ścieżkę do programu i osobno ścieżkę do klucza.

Tak przygotowany skrót umieszczamy w folderze Autostart który znajduje się w Menu Start. Teraz po każdym starcie systemu zostaniemy poproszeniu o wpisanie hasła z sekcji 1. To jedyna chwila, w której wpisuje się hasło – wszystkie logowania do serwerów odbywać się będą bez haseł.

Przygotowanie klienta – konfiguracja putty

Do samego logowania się nie jest wymagana zmiana domyślnej konfiguracji – należy się tylko upewnić czy checkox w polu: Attempt authentication using Pageant jest zaznaczone w ustawieniach Connection \ SSH \ Auth. U mnie jest ono zaznaczone, jednak używam tego sposobu na wszystkich moich maszynach i nie wiem czy przypadkiem nie zmieniłem domyślnego ustawienia już dawno temu.

Po kliknięci Open zostanie otwarte połączenie do wybranego serwera i … zostaniemy poproszeni o nazwę użytkownika 🙂 po wpisaniu tej nazwy zostaniemy automatycznie zalogowani. Czy da się pominąć pytanie o nazwę użytkownika? Da się! 🙂 Wracamy do ustawień putty, wybieramy profil i w sekcji Connection \ Data w polu Auto-login username wpisujemy nazwę użytkownika. Po kliknięciu Open zostaniemy automatycznie zalogowani.

W razie problemu z logowaniem na górze ekranu putty powinien pojawić się komunikat z informacją czy nastąpiła chociaż próba logowania przy użyciu klucza. Jeżeli taki komunikat nie pojawia się, to oznacza, że serwer nie jest odpowiednio skonfigurowany i wymagana jest interwencja administratora. W innym przypadku komunikat powinien opisowo powiedzieć co jest nie tak – trzeba wtedy przejrzeć ten poradnik lub poszukać pomocy w internecie.

Dodatkowe sztuczki

Skrót do putty z automatycznym ładowaniem profilu

Program putty przyjmuje parametry z linii poleceń. Tworząc kilka skrótów do niego i dodając jako parametr wartość: -load „nazwa_profilu_zapisanego_w_putty” można automatycznie wczytać profil i w połączeniu z opisaną tu techniką zalogować się na serwer.

Logowanie do dalszych serwerów w ramach istniejącej sesji

Czasami w trakcie połączenia z serwerem chcemy wykonać komendę jakimś na innym zdalnym serwerze. Także w tym przypadku – jeżeli mamy na docelowym serwerze wpisany swój klucz publiczny – możemy pominąć autentykację. W ustawieniach putty w sekcji Connection \ SSH \ Auth zaznaczamy opcję Allow agent forwarding. Każde kolejne połączenie będzie autentykowane przy pomocy agenta. Taka opcja jest przydatna również w scenariuszu, gdy tylko jeden serwer w danej lokalizacji jest widoczny z zewnątrz i używamy go jako bramki, logując się z niego na kolejne serwery.

Minimalizowanie aplikacji do obszaru powiadomień – system tray

Jeżeli chcemy by putty pozostawało otwarte i minimalizowało się do obszaru powiadomień mamy dwa rozwiązania:

  1. Użycie jakiegoś narzędzia ogólno systemowego które potrafi schować każdy program
  2. Użycie zmodyfikowanej wersji programu Putty – PuTTY Tray – dostępnego pod adresem: http://haanstra.eu/putty/

Zmodyfikowana wersja umożliwia taką minimalizację oraz zawiera kilka modyfikacji, które mogą niektórym przypaść do gustu:

  1. Automatyczne ponawianie połączenia po rozłączeniu
  2. Automatyczne połączenie po powrocie ze stanu wstrzymania
  3. Ułatwiony dostęp do opcji „Zawsze na wierzchu”
  4. Możliwość włączenia przeźroczystości okna
  5. Możliwość przechowywania profili w plikach – idealne do zapisania profili na przykład na pamięci usb

Globalne skróty klawiszowe do uruchamiania putty

Przy pomocy programu PuTTY Session Manager możliwe jest ustawienie globalnych skrótów klawiszowych (Win + 0…9) do uruchamiania określonych sesji. Program umożliwia dodatkowo:

  1. Kategoryzowanie zapisanych sesji w formie drzewa
  2. Przezroczystość okna
  3. Okno zawsze na wierzchu
  4. Integrację z WinSCP – sesje z putty dostępne są w WinSCP
  5. Synchronizację zapisanych sesji pomiędzy maszynami – albo przez plik przenoszony ręcznie albo poprzez wystawienie pliku w sieci
  6. Globalne skróty klawiszowe
    1. Nowe połączenie – bez wybranej sesji, ekran domyślny putty
    2. Minimalizacja okien putty
    3. Otwarcie wybranej sesji po wciśnięciu Win+0..9
  7. Automatyczne wczytywanie Pageant wraz z wybraniem kluczy, które ma załadowane.

Zmiana domyślnych ustawień putty.

By zmienić domyślne ustawienia programu – na przykład zmienić kodowanie na utf-8 – dla każdej nowej sesji należy po uruchomieniu putty nie wybierać profilu tylko dokonać zmian i powrócić na główną stronę, wybrać profil „Default settings”  i przycisk Save. Niestety ta zmiana nie działa na zapisane do tej pory sesje. Przy zapisaniu nowej sesji putty kopiuje aktualne ustawienia więc wszystkie pola mają wartość taką jak podczas tworzenia tej sesji.

No i to na razie wszystko. Jeżeli znacie jakieś sztuczki to podzielcie się nimi w komentarzach.

cudzys?owu

15 stycznia 2011 20:54 Grzegorz Drozd Jeden komentarz Komentuj Kategorie: Narz?dzia, Praca

Wysłany przez:
dobry katalog
4 kwietnia 2011 05:39

Ciekawe! B?d? cz??ciej do Ciebie zagl?da?a.

Bądź uprzejma(y).

Możesz używać następujących tagów HTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Twój adres e-mail nie będzie wyświetlony.

Twój adres e-mail nie będzie przekazany nikomu.

Wszystkie komentarze są moderowane.