# Jak korzystać z kluczy SSH?

# Klucze SSH

Wykorzystanie kluczy SSH znacznie zwiększa bezpieczeństwo połączenia z maszyną wirtualną OCI. 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 wirtualnej 2) dla już istniejącej maszyny.

Oktawave umożliwia stworzenie maszyny wirtualnej z logowaniem za pomocą kluczy SSH, natomiast żeby to rozwiązanie zadziałało, należy uprzednio dodać klucz publiczny do Panelu (za pomocą poniższego tutoriala). Jeśli masz już jakieś OCI i potrzebujesz zmienić sposób dostępu, należy posłużyć się tym artykułem (lub przewinąć stronę do części końcowej).

# 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 (opens new window). 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 maszyny.

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 maszyny wirtualnej.

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.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 maszyny wirtualnej 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 maszyny. 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 już istniejącej maszyny wirtualnej

Jeżeli chcesz skonfigurować logowanie z użyciem kluczy SSH na już stworzonej maszynie wirtualnej, 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 zapisz jako authorized, wykonując polecenie:

cat id_rsa.pub >> authorized_keys

Jeżeli chodzi o klucz prywatny, a więc id_rsa, zgraj 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).