Zaawansowana konfiguracja połączeń SSH

OpenSSH

Praca w systemach rozproszonych wymaga używania wielu danych uwierzytelniających. Pal licho jeśli do wszystkich serwerów mamy ten sam login, możemy użyć wtedy jednego klucza SSH i problem z głowy. Schody zaczynają się gdy potrzebujemy łączyć się z różnymi lokacjami używając różnych nazw użytkownika.

Oczywiście w pewnym sensie to też nie jest za wielki problem. Bo przecież wystarczy wpisać ssh login@lokalizacja i już, łączymy się. Wyobraźcie sobie jednak sytuację, że trzeba zapamiętać 30 i loginów i tyleż samo haseł do nich, przy czym hasła te to nie żadne 1234 czy qwerty, ale losowe ciągi znaków prosto z generatora. Ile to czasu można stracić próbując sobie przypomnieć czy to było może 76b2jfuds6yfb, czy też 8on$2cd… O ile w ogóle da się to zapamiętać ;)

Z pomocą przychodzi plik konfiguracyjny dla protokołu ssh, czyli ~/.ssh/config, gdzie ~ to nic innego jak katalog domowy użytkownika (przeważnie /usr/home/nasz_login/ dla systemów Unix oraz C:\Users\nasz_login\ dla Windows). W tym pliku możemy w prosty sposób skonfigurować dane uwierzytelniające dla każdego serwera z osobna, jednocześnie przypisać im łatwe do zapamiętania aliasy (np. apps zamiast applications.nasza_firma.lan). Przykładowa konfiguracja dla wspomnianego przykładu:

# Połączenie jako użytkownik jakis_tam_sobie_user
Host apps
    HostName applications.nasza_firma.lan
    Port 22
    User jakis_tam_sobie_user
    IdentityFile ~/.ssh/jakis_tam_sobie_user_RSA

gdzie poszczególne linie oznaczają:
Host apps – deklaracja naszego aliasu, używanego np. w komendzie ssh
HostName applications.nasza_firma.lan – oryginalna nazwa serwera
User jakis_tam_sobie_user – wymuszenie logowania jako podany użytkownik (domyślnie połączenie nawiązywane jest z użyciem loginu systemowego)
IdentityFile ~/.ssh/jakis_tam_sobie_user_RSA – informacja o kluczu SSH, który uprawnia nas do połączenia z danym serwerem jako podany użytkownik. Klucz taki wcześniej należy przygotować. Jeśli nie jest podany konkretny klucz używane są domyślne: ~/.ssh/id_rsa lub ~/.ssh/id_dsa.

Dla każdego z serwerów możemy sobie zadeklarować osobną sekcję wzorem powyższej, używając odpowiednich danych (adres serwera, login, klucz). Jest jeszcze wiele innych właściwości, które możemy dostrajać, wystarczy zapoznać się z dokumentacją i ewentualnie rozszerzyć powyższą podstawową konfigurację o inne interesujące nas parametry. Przygotowanie takiego pliku nie zajmuje dużo czasu, a znacznie ułatwia życie – nie dość, że dla każdego z połączeń możemy zadeklarować osobne dane uwierzytelniające, to możemy też przypisać sobie łatwiejsze do zapamiętania i przede wszystkim krótsze aliasy hostów. W momencie, gdy każdego dnia jesteśmy zmuszeni skakać z serwera na serwer i komenda ssh śni się nam po nocach, plik taki jest wybawieniem :)

Skomentuj "Zaawansowana konfiguracja połączeń SSH":

Musisz się zalogować, aby móc dodać komentarz.