Android

Jak skonfigurować logowanie SSH bez hasła?

Podstawy #01 Logowanie SSH bez hasła – jak używać kluczy

Podstawy #01 Logowanie SSH bez hasła – jak używać kluczy

Spisu treści:

Anonim

Secure Shell (SSH) to kryptograficzny protokół sieciowy używany do bezpiecznego połączenia między klientem a serwerem i obsługuje różne mechanizmy uwierzytelniania. Dwa najpopularniejsze mechanizmy to uwierzytelnianie oparte na hasłach i uwierzytelnianie oparte na kluczu publicznym.

W tym samouczku pokażemy, jak skonfigurować uwierzytelnianie oparte na kluczu SSH, a także jak połączyć się z serwerem Linux bez wprowadzania hasła.

Skonfiguruj SSH Logowanie bez hasła

Aby skonfigurować logowanie SSH bez hasła w systemie Linux, wystarczy wygenerować publiczny klucz uwierzytelniający i dołączyć go do pliku ~/.ssh/authorized_keys zdalnych hostów.

Poniższe kroki opisują proces konfiguracji logowania SSH bez hasła:

  1. Sprawdź istniejącą parę kluczy SSH.

    Przed wygenerowaniem nowej pary kluczy SSH najpierw sprawdź, czy masz już klucz SSH na komputerze klienckim, ponieważ nie chcesz zastępować istniejących kluczy.

    Uruchom następującą komendę ls, aby sprawdzić, czy istnieją istniejące klucze SSH:

    ls -al ~/.ssh/id_*.pub

    Jeśli istnieją klucze, możesz ich użyć i pominąć następny krok lub wykonać kopię zapasową starych kluczy i wygenerować nowy.

    Wygeneruj nową parę kluczy SSH.

    Poniższe polecenie wygeneruje nową parę kluczy SSH 4096 bitów z Twoim adresem e-mail jako komentarz:

    ssh-keygen -t rsa -b 4096 -C "[email protected]"

    Naciśnij Enter aby zaakceptować domyślną lokalizację i nazwę pliku:

    Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

    Następnie narzędzie ssh-keygen poprosi cię o wpisanie bezpiecznego hasła. Niezależnie od tego, czy chcesz użyć hasła, zależy od Ciebie, jeśli zdecydujesz się na użycie hasła, otrzymasz dodatkową warstwę bezpieczeństwa. W większości przypadków programiści i administratorzy systemu używają protokołu SSH bez hasła, ponieważ są przydatne w procesach w pełni zautomatyzowanych. Jeśli nie chcesz używać hasła, po prostu naciśnij Enter

    Enter passphrase (empty for no passphrase):

    Cała interakcja wygląda następująco:

    Aby mieć pewność, że klucze SSH są generowane, możesz wymienić swoje nowe klucze prywatne i publiczne za pomocą:

    ls ~/.ssh/id_*

    /home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

    Skopiuj klucz publiczny

    Po wygenerowaniu pary kluczy SSH, aby móc zalogować się na serwerze bez hasła, musisz skopiować klucz publiczny na serwer, którym chcesz zarządzać.

    Najprostszym sposobem skopiowania klucza publicznego na serwer jest użycie polecenia o nazwie ssh-copy-id . Na lokalnym terminalu maszynowym wpisz:

    ssh-copy-id remote_username@server_ip_address

    Zostaniesz poproszony o podanie hasła remote_username :

    remote_username@server_ip_address's password:

    Po uwierzytelnieniu użytkownika klucz publiczny zostanie dołączony do pliku użytkownika authorized_keys , a połączenie zostanie zamknięte.

    Jeśli z jakiegoś powodu narzędzie ssh-copy-id nie jest dostępne na twoim komputerze lokalnym, możesz użyć następującego polecenia, aby skopiować klucz publiczny:

    cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

    Zaloguj się do swojego serwera za pomocą kluczy SSH

    Po wykonaniu powyższych kroków powinieneś być w stanie zalogować się na zdalnym serwerze bez pytania o hasło.

    Aby to przetestować, po prostu spróbuj zalogować się na serwerze za pośrednictwem SSH:

    ssh remote_username@server_ip_address

    Jeśli wszystko pójdzie dobrze, natychmiast się zalogujesz.

Wyłączanie uwierzytelniania hasła SSH

Aby dodać dodatkową warstwę bezpieczeństwa do serwera, możesz wyłączyć uwierzytelnianie hasła dla SSH.

Przed wyłączeniem uwierzytelniania hasła SSH upewnij się, że możesz zalogować się na serwerze bez hasła, a użytkownik, z którego się logujesz, ma uprawnienia sudo.

Poniższe samouczki opisują sposób konfigurowania dostępu sudo:

  1. Zaloguj się do zdalnego serwera za pomocą kluczy SSH, jako użytkownik z uprawnieniami sudo lub root:

    ssh sudo_user@server_ip_address

    Otwórz plik konfiguracyjny SSH /etc/ssh/sshd_config , wyszukaj następujące dyrektywy i zmodyfikuj w następujący sposób:

    / etc / ssh / sshd_config

    PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

    Po zakończeniu zapisz plik i uruchom ponownie usługę SSH.

    Na serwerach Ubuntu lub Debian uruchom następujące polecenie:

    sudo systemctl restart ssh

    Na serwerach CentOS lub Fedora uruchom następujące polecenie:

    sudo systemctl restart sshd

Wniosek

W tym samouczku nauczyłeś się konfigurować uwierzytelnianie oparte na kluczu SSH, co pozwala na logowanie się do zdalnego serwera bez podawania hasła użytkownika. Możesz dodać ten sam klucz do wielu zdalnych serwów.

Pokazaliśmy również, jak wyłączyć uwierzytelnianie za pomocą hasła SSH i dodać dodatkową warstwę bezpieczeństwa do serwera.

bezpieczeństwo ssh