Łączenie się z serwerem za pomocą protokołu SSH

Bezpieczny dostęp do serwera zapewnia nam protokół SSH. Jest to następca protokołu telnet, który oferuje szyfrowanie. Autoryzacja za pomocą klucza jest dużo bezpieczniejsza niż w przypadku korzystania z haseł. Całkowicie wyklucza to ataki brute-force. Zaczniemy od wygenerowania pary kluczy: prywatnego i publicznego. Klucz publiczny umieścimy na serwerze, a za pomocą klucza prywatnego będziemy się logować. Administrować serwerem będziemy mogli tylko z tego komputera, który posiada klucz prywatny. Dodatkowo możemy zabezpieczyć klucz prywatny hasłem.

Generowanie klucza SSH

Wygenerujmy 4096 bitowy klucz, który jest silniejszy, niż standardowy 2048 bitowy.

ssh-keygen -t rsa -b 4096

Zostaniesz poproszony o podanie hasła (koniecznie silne) i ścieżki, gdzie klucz ma zostać wygenerowany.

Dodanie klucza na serwerze

Wchodzimy do katalogu domowego (bądź miejsca, gdzie wygenerowałeś klucz)

cd /home/atastycookie/.ssh/

Kopiujemy plik klucza publicznego na serwer (ten z końcówką .pub)

ssh-copy-id -i klucz konto@serwer

putty

Aby korzystać z klucza wygenerowanego za pomocą ssh-keygen w programie putty musimy skonwertować klucz za pomocą puTTYgen.

Otwórz puTTYgen, wciśnij Conversions następnie Import key i wskaż mu lokalizację pliku klucza prywatnego. Zostaniesz poproszony o podanie hasła. Następnie wciśnij Save private key i gotowe.

Możesz również wygenerować klucz w programie putty. Po prostu wciśnij Generate, poczekaj na wygenerowanie klucza, nadaj mu hasło i go zapisz.

Jak zalogować się na serwer przez SSH z użyciem klucza?

W zależności od sytemu, z którego korzystasz na co dzień masz następujące możliwości:

Linux

W terminalu wpisz

ssh -i klucz konto@serwer

putty

Aby połączyć się z serwerem otwórz program, następnie w Connection -> SSH -> Auth podaj lokalizację klucza prywatnego, który chwilę temu zapisałeś. Później w Session w polu hostname podaj ip serwera (bądź domenę) i port. W Connection -> Data wpisz nazwę konta. Warto zapisać sesję, aby nie musieć ponownie jej konfigurować.

Błąd

Jeśli po dodaniu nowego klucza nie możesz się połączyć i widzisz ten błąd

Agent admitted failure to sign using the key.

Wystarczy, że wpiszesz w terminalu

ssh-add

Jeśli Twój klucz ma inną nazwę, bądź ścieżkę wtedy wpisz

ssh-add /sciezka/do/klucza/klucz

Zabezpieczenie serwera SSH

Wszystkie zmiany będziemy przeprowadzać w pliku sshd_config

nano /etc/ssh/sshd_config

Wyłączenie możliwości zalogowania za pomocą hasła

Znajdź linjkę

#PasswordAuthentication yes

Zmień ją na

PasswordAuthentication no

Protokół

Zmień wersję protokołu na 2, która jest bezpieczna

Protocol 2

 Zmiana portu

Domyślnie łączymy się z serwerem za pomocą portu 22. Większość skanerów sieciowych domyślnie skanuje na portach do 1024. Dlatego zmieńmy port na dużo wyższy. Znajdź linijkę

Port 22

I zmień ją na np.

Port 6123

Określeni użytkownicy

Warto ograniczyć możliwość logowania się tylko dla konkretnych grup i kont

Przyznanie dostępu
AllowUsers konto1 konto2
AllowGroups grupa1 grupa2
Zablokowanie dostępu
DenyUsers konto1 konto2
DenyGroups grupa1 grupa2

Restart

Zapisz zmiany w pliku i zrestartuj usługę

service ssh restart

3 KOMENTARZE

  1. „Generowanie klucza SSH

    Wygenerujmy 4096 bitowy klucz, który jest silniejszy, niż standardowy 2048 bitowy.

    ssh-keygen -t rsa -b 4096”

    Nie, tak nie generujemy klucza. Klucz generujemy tak:
    ssh-keygen -o -a 100 -t ed25519

    Warto jeszcze wylaczyc wsparcie dla starych KexAlgorithms, Ciphers oraz MACs, oraz wylaczyc mozliwosc polaczenia sie przy uzyciu klucza innego niz ed25519. Ponadto w systemach typu Debian i jego klonach dodac opcje:
    DebianBanner no
    Plus kilka innych:
    AllowTcpForwarding no
    TCPKeepAlive yes
    Subsystem sftp /usr/lib/openssh/sftp-server -f AUTHPRIV -l INF

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj