Aby zalogować się na serwer zdalny za pomocą SSH bez użycia hasła, musisz użyć pary kluczy SSH (klucz publiczny i prywatny). Poniżej opisałem poszczególne kroki aby to zrobić:

1. Generowanie pary kluczy SSH na komputerze lokalnym

Jeśli jeszcze nie masz klucza SSH, możesz go wygenerować za pomocą polecenia ssh-keygen. Oto jak to zrobić:

  1. Otwórz terminal na swoim komputerze lokalnym.
  2. Wygeneruj klucz SSH: $ ssh-keygen -t rsa -b 4096 -C "twó[email protected]"
  3. Podaj nazwę pliku do zapisu kluczy: Zostaniesz poproszony o podanie lokalizacji do zapisania klucza (domyślnie: ~/.ssh/id_rsa). Możesz nacisnąć Enter, aby zaakceptować domyślną lokalizację.
  4. Ustaw hasło zabezpieczające dla klucza (opcjonalnie): Możesz podać hasło, aby dodatkowo zabezpieczyć klucz prywatny, lub pozostawić puste, jeśli nie chcesz hasła.

2. Skopiowanie klucza publicznego na serwer zdalny

Następnie musisz przesłać klucz publiczny na serwer zdalny:

  1. Użyj ssh-copy-id do skopiowania klucza publicznego: $ ssh-copy-id użytkownik@adres_serwera
    • Zastąp użytkownik nazwą użytkownika na serwerze zdalnym.
    • Zastąp adres_serwera adresem IP lub nazwą domeny serwera zdalnego.
    ssh-copy-id automatycznie skopiuje klucz publiczny do pliku ~/.ssh/authorized_keys na serwerze zdalnym. Zostaniesz poproszony o podanie hasła do konta użytkownika na serwerze zdalnym.

3. Testowanie połączenia SSH

Po wykonaniu powyższych kroków powinieneś być w stanie zalogować się na serwer zdalny bez konieczności podawania hasła:

$ ssh użytkownik@adres_serwera

Jeśli wszystko jest poprawnie skonfigurowane, zostaniesz zalogowany bez prośby o podanie hasła.

Uwaga

  • Upewnij się, że masz odpowiednie uprawnienia do katalogu .ssh i pliku authorized_keys na serwerze zdalnym (odpowiednio 700 i 600).

To wszystko! Twoje połączenie SSH powinno teraz działać bez potrzeby podawania hasła.