Autoryzacja (klucze SSH i login i hasło)

Login i hasło

W trakcje tworzenia instancji w panelu administratora do dyspozycji są dwie metody autoryzacji. Jedną z nich jest autoryzacja poprzez podanie nazwy użytkownika oraz hasło. Aby ustawić tę metodę logowania należy wybrać Użytkownik i hasło w punkcie metoda autoryzacji.

Po utworzeniu instancji kliknij na nią prawym przyciskiem myszy odnajdź podpunkt Dane dostępowe i kliknij Pokaż hasło. Hasło będzie wykorzystywane przy logowaniu się do nowo utworzonej instancji.

Klucze SSH

Wykorzystanie kluczy SSH znacznie zwiększa bezpieczeństwo połączenia z instancją. Domyślnie, serwer OpenSSH umożliwia logowanie się z użyciem nazwy użytkownika i hasła, co nie jest dostatecznie bezpieczną metodą, gdyż zawsze istnieje prawdopodobieństwo złamania hasła metodą "siłową" (brute-force). W przypadku pary kluczy ssh takiego zagrożenia praktycznie nie ma, aczkolwiek należy pamiętać o właściwym zabezpieczeniu klucza prywatnego. Dodatkowo, przy wykorzystaniu kluczy, nie trzeba pamiętać często długiego i skomplikowanego hasła.

W poniższym poradniku zostaną opisane dwa sposoby konfiguracji - 1) podczas tworzenia nowej maszyny 2) dla już istniejącej instancji.

Generowanie klucza publicznego i prywatnego

Konfiguracja rozpoczyna się od wygenerowania klucza publicznego oraz prywatnego. Możesz to zrobić w programie PuttyGen, który jest elementem aplikacji Putty. Oba klucze biorą udział w procesie komunikacji dopasowując się wzajemnie jako para. Jeżeli klucz prywatny nie będzie "pasował" do publicznego, logowanie nie dojdzie do skutku.

Aby wygenerować parę kluczy, kliknij przycisk Generate i poruszaj myszką dotąd, aż pasek postępu dojdzie do końca.

W kolejnym kroku zapisz klucz prywatny klikając na przycisk Save private key. Program zapyta o hasło dla klucza prywatnego (Key-passphrase). Ustawienie hasła nie jest wymagane ale zabezpiecza klucz w przypadku jego fizycznej utraty. Wadą tego rozwiązania jest to, że trzeba będzie podawać wspomniane hasło podczas logowania do instancji.

opcja bez hasła dla klucza prywatnego

Jeżeli chodzi o klucz publiczny, możesz skopiować jego zawartość aby zapisać klucz w Panelu Admina lub również zapisać na dysku, jeżeli chcesz go przesłać do już utworzonej instancji.

Możesz również użyć konsoli w systemie Linux / Unix. Aby wygenerować parę kluczy RSA wystarczy wydać polecenie:

ssh-keygen

Jeżeli nie określisz nazwy dla kluczy (przy pierwszym pytaniu wciśniesz enter), zostaną one zapisane w katalogu /$HOME/.ssh jako id_rsa oraz id_rsa.pub. W przeciwnym wypadku, klucze zapiszą się w bieżącym katalogu pod nazwą, którą wybierzesz np. nazwaklucza nazwaklucza.pub. Do wyświetlenia zawartości klucza publicznego wystarczy np. polecenie "cat". Klucz publiczny ma końcówkę .pub.

Zapisanie klucza publicznego w Panelu Admina

Klucz publiczny możesz dodać zarówno podczas tworzenia nowej instancji jak i w głównym menu Panelu Admina (OCI → Klucze SSH → Dodaj nowy klucz). Poniżej zostanie opisany pierwszy sposób z wykorzystaniem konfiguratora nowej instancji. Poniżej opcji wyboru systemu i parametrów maszyny, pojawia się opcja dotycząca trybu autoryzacji, gdzie po wyborze "Klucze ssh" zobaczysz przycisk Dodaj klucz SSH.

Następnie możesz wkleić skopiowaną wcześniej zawartość klucza i zapisać pod wybraną nazwą:

W kolejnym kroku, należy zaznaczyć świeżo dodany klucz i zakończyć konfigurację nowej maszyny. Po jej utworzeniu pozostaje połączyć się z maszyną. Można wykorzystać w tym celu program Putty. Nowe połączenie należy skonfigurować w celu obsługi logowania przez klucze. W menu po lewej stronie dodaj klucz prywatny (SSH → Auth):

Następnie, połącz się z maszyną wpisując jej adres IP bądź nazwę hosta i otwórz połączenie klikając Open.

API

Do utworzenia maszyny, z wykorzystaniem metody logowania za pomocą kluczy ssh, możesz wykorzystać również nasze API. Pamiętaj jednak, że klucz powinien być wcześniej zapisany w Panelu Admina. Przykładowe polecenie może przybrać postać:

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Bearera7063aed54c9cc089f808f2831e07e5a' -d '{ "AuthorizationMethodId": 0, "DiskClass": 0, "DiskSize": 0, "InstanceName": "string", "InstancesCount": 0, //wartość 1-5// "IPAddressId": 0, "SshKeysIds": [ 0 ], "SubregionId": 0, "TemplateId": 0, "TypeId": 0, "Freemium": false}' 'https://api.oktawave.com/beta/instances'

Konfiguracja logowania w już istniejącej instancji

Jeżeli chcesz skonfigurować logowanie z użyciem kluczy SSH na już stworzonej instancji, możesz w pierwszej kolejności wykorzystać wcześniej wspomniane polecenie ssh-keygen. Po wygenerowaniu pary kluczy, będąc wewnątrz katalogu .ssh, klucz publiczny zapisujesz jako authorized, wykonując polecenie:

cat id_rsa.pub >> authorized_keys

Jeżeli chodzi o klucz prywatny, a więc id_rsa, zgrywasz go na lokalny komputer. W przypadku logowania z użyciem Putty, musisz otworzyć (załadować) klucz w PuttyGen, a następnie zapisać w formacie, rozpoznawalnym przez Putty.

Pozostaje jeszcze wyłączyć logowanie po haśle w pliku

/etc/ssh/sshd_config

Korzystając z ulubionego edytora zmieniamy opcję

PasswordAuthenticationnano

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

Pozostaje zrestartować demona sshd i możesz się logować z użyciem klucza (sposób logowania, z wykorzystaniem Putty został opisany we wcześniejszym fragmencie artykułu).