Jak używać ssh-copy-id na Ubuntu

Jak używać ssh-copy-id na Ubuntu
Jednym z przydatnych narzędzi SSH jest ssh-copy-id który służy do instalacji klawisza SSH na zdalnym serwerze, aby zalogować się do serwera bez podawania hasła do logowania. Tak więc pojedyncze logowanie bez hasła i zautomatyzowane hasło za pomocą SSH można łatwo zaimplementować za pomocą tego narzędzia. Kopiuje klucze publiczne do zdalnego gospodarza ~/.ssh/autoryzowane_keys plik poprzez utworzenie pliku i katalogu w razie potrzeby, ale nie modyfikuje uprawnienia żadnego istniejącego pliku lub folderu. W tym samouczku można użyć polecenia SSH-Copy-ID do połączenia SSH.

Wymagania wstępne:

Przed rozpoczęciem kroków w tym samouczku konieczne będą następujące kroki do ukończenia.

Włącz usługę SSH na Ubuntu, jeśli nie jest ona wcześniej włączona.
Wygeneruj pary kluczy SSH, aby wykonać polecenia na zdalnym serwerze. Uruchom następujące polecenie, aby utworzyć klucz publiczny i klucz prywatny. Klucz prywatny będzie przechowywany na zdalnym serwerze, a klucze publiczne będą bezpiecznie przechowywane w kliencie.

$ ssh -keygen -t rsa

Uruchom następujące polecenie, aby otworzyć sshd_config Plik za pomocą nano edytora, aby dodać niezbędne konfiguracje.

$ sudo nano/etc/ssh/sshd_config

Dodaj następujące wiersze w pliku, aby włączyć logowanie root i uwierzytelnianie oparte na hasłach.

HasłoAuthentication Tak
Pertrootlogin Tak

Uruchom następujące polecenie, aby ponownie uruchomić usługę SSH.

$ sudo service ssh restart

Składnia:

Składnia polecenia SSH-Copy-ID podano poniżej. Obsługuje wiele opcji, które zostały wyjaśnione później.

ssh-copy-id [-lv] [-i KeyFile] [-o opcja] [-p port] [użytkownik@] nazwa hosta

Różne opcje polecenia ssh-copy-id:

Cele korzystania z różnych opcji poleceń SSH-Copy-ID zostały opisane w tej części samouczka.

Opcja Zamiar
-Kluczowy Służy do kopiowania klucza publicznego, który jest przechowywany w plik. Można go używać wiele razy.
-L Służy do kopiowania kluczy obecnie posiadanych przez SSH-Agent. Używa jako domyślny, jeśli opcja -i nie jest określona.
-O SSH-Option Służy do przekazywania opcji bezpośrednio do SSH. Można go używać wiele razy.
-P Port Służy do łączenia z określonym portem na zdalnym hoście zamiast domyślnego portu, który ma 22.
-v Służy do przekazywania wartości -V do SSH.

Skopiuj klucz do serwera:

Musisz autoryzować klucz publiczny w komputerze serwerowym do ustanowienia połączenia SSH bez użycia hasła. Po utworzeniu klucza publicznego polecenie SSH-Copy-ID może dodać klucz jako autoryzowany klucz na komputerze serwerowym.

Uruchom następujące polecenie z komputera serwerowego, aby dodać dowolny nowo utworzony klucz publiczny jako autoryzowany klucz serwera.

$ ssh-copy-id fahmida@fahmida-virtualbox

Następujące dane wyjściowe pojawią się, jeśli klucz publiczny już istnieje na zdalnym serwerze; W przeciwnym razie klucz zostanie dodany.

Wcześniej wspomniano, że opcja -i jest używana z poleceniem ssh-copy-id, aby dodać klucz publiczny z pliku. Jeśli przechowywałeś nowo utworzony klawisz publiczny w pliku domyślnym, nazwa pliku będzie id_rsa.pub. Ale podczas tworzenia pary kluczy ustawiłeś dowolną nazwę pliku, a następnie użyj tej nazwy pliku z opcją -i. Zapisałem klucz publiczny w pliku domyślnym.

Uruchom następujące polecenie z komputera serwerowego, aby dodać klucz publiczny do komputera serwerowego. Polecenie skopiuje klucz do serwera i skonfiguruje go, aby dodać klucz do autoryzowane_keys plik dostęp do serwera.

$ ssh-copy-id -i ~/.ssh/id_rsa fahmida@fahmida-virtualbox

Pojawi się następujące dane wyjściowe, jeśli klucz publiczny nie dodał wcześniej do komputera serwerowego.

Sprawdź połączenie:

Po dodaniu klucza do serwera musisz sprawdzić, czy komputer klienta może połączyć się z serwerem. Nazwa użytkownika komputera serwerowego to „Fahmida”, a komputer klienta jest tutaj „tak. Zaloguj się więc do komputera klienta, aby przetestować połączenie.

Uruchom następujące polecenie, aby dodać tożsamość serwera do komputera klienta.

$ ssh-add

Uruchom następujące polecenie SSH bez żadnej opcji nawiązania połączenia z komputerem serwerowym. Jeśli uwierzytelnianie oparte na hasłach jest włączone na komputerze serwerowym, użytkownik musi podać prawidłowe hasło do nawiązania połączenia z serwerem.

$ ssh fahmida@fahmida-virtualbox

Poniższe dane wyjściowe pokazuje, że tożsamość serwera została dodana do komputera klienta. Następnie hasło użytkownika serwera poprosiło o połączenie, ponieważ uwierzytelnianie oparte na hasłach zostało włączone na komputerze serwerowym. Nazwa użytkownika jest zmieniana na „Fahmida” z „Takmin” w wierszu polecenia, który wskazuje, że połączenie zostało poprawnie ustanowione po podaniu prawidłowego hasła.

Jeśli chcesz wymienić nazwę pliku klucza publicznego z lokalizacją do ustanowienia połączenia z serwerem, uruchom następujące polecenie SSH z opcją -i. Będzie wymagało przechowywania klucza publicznego w nazwie pliku zdefiniowanej przez użytkownika. Użyłem domyślnej nazwy pliku w momencie generowania klawisza, którym jest id_rsa.

$ ssh -i ~/.ssh/id_rsa fahmida@fahmida-virtualbox

Poprosi o hasło, tak jak wcześniej, aby nawiązać połączenie z serwerem. Dane wyjściowe pokazuje, że połączenie zostało poprawnie ustanowione, a nazwa użytkownika wiersza polecenia zmieniła się. Możesz zmienić plik konfiguracyjny serwera, aby wyłączyć uwierzytelnianie oparte na hasłach, jeśli nie chcesz podawać hasła, gdy chcesz połączyć się z serwerem.

Wniosek:

Zastosowania polecenia SSH-Copy-ID do połączenia ze zdalnym hostem zostały opisane w tym samouczku za pomocą dwóch kont użytkowników lokalnego hosta, aby pomóc czytelnikom w prawidłowym znaczeniu funkcji tego polecenia.