Polecenie ssh-copy-id to proste narzędzie, które pozwala zainstalować klucz SSH na autoryzowanych kluczach zdalnego serwera. To polecenie ułatwia logowanie za pomocą klucza SSH, co eliminuje konieczność podawania hasła przy każdym logowaniu, zapewniając w ten sposób automatyczny proces logowania bez hasła. Polecenie ssh-copy-id jest częścią OpenSSH, narzędzia do zdalnego administrowania systemem przy użyciu szyfrowanych połączeń SSH.
Z tego artykułu dowiesz się, jak korzystać z narzędzia ssh-copy-id, aby logowanie SSH było bardziej płynne i bezpieczne.
Jak zainstalować polecenie ssh-copy-id?
Narzędzie ssh-copy-id, część pakietu OpenSSH, jest dostępne we wszystkich głównych repozytoriach dystrybucji Linuksa i możesz użyć swojego menedżera pakietów, aby zainstalować to polecenie.
Aby zainstalować narzędzie ssh-copy-id na Debianie, użyj następującego polecenia:
sudo apt-get update && sudo apt-get install openssh-clientPo zainstalowaniu OpenSSH możesz użyć narzędzia ssh-copy-id w wierszu poleceń.
$ identyfikator-kopii-sshUżycie: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [plik_tożsamości]] [-p port] [[-o
Korzystanie z ssh-copy-id jest proste, ponieważ skrypt ułatwia i usprawnia proces uwierzytelniania klucza publicznego. Zanim zagłębimy się w korzystanie z narzędzia, najpierw omówimy, jak działa uwierzytelnianie za pomocą klucza publicznego SSH.
UWAGA: Jeśli już wiesz, jak działa uwierzytelnianie za pomocą klucza publicznego SSH, możesz pominąć tę część i natychmiast zagłębić się w temat korzystania z polecenia ssh-copy-id.
Uwierzytelnianie klucza publicznego SSH
Uwierzytelnianie publicznym kluczem SSH to metoda uwierzytelniania SSH, która pozwala użytkownikom używać kryptograficznie wygenerowanych kluczy do logowania się na zdalnych serwerach.
Klucze SSH są bezpieczniejsze niż surowe hasła i zapewniają znacznie wydajniejszy sposób logowania do SSH. Klucze SSH są zautomatyzowane, a po autoryzacji nie wymagają hasła przy każdym logowaniu.
Aby użyć klucza SSH, zaczniemy od wygenerowania klucza.
Jak wygenerować klucz SSH
Aby wygenerować klucz SSH, użyj narzędzia ssh-keygen, które jest częścią OpenSSH. To narzędzie generuje pliki kluczy publicznych i prywatnych przechowywane w ~/.katalog ssh, jak pokazano poniżej.
$ ssh-keygenGenerowanie pary kluczy publiczny/prywatny rsa.
Wpisz plik, w którym chcesz zapisać klucz (/root/.ssh/id_rsa):
Utworzony katalog '/root/.ciii.
Wpisz hasło (puste, jeśli nie ma hasła):
Wprowadź ponownie to samo hasło:
Twoja identyfikacja została zapisana w /root/.ssh/id_rsa.
Twój klucz publiczny został zapisany w /root/.ssh/id_rsa.pub.
Kluczowy odcisk palca to:
SHA256:ddVOQhS6CGt8Vnertz9aiSnvOUKmSpPrZ+gI24DptsA root@user Losowy obraz klucza to:
+---[RPA 2048]----+
| o=o |
| o. o|
| … + .+.|
| . + + o .o|
| S + . . |
|. o … o o + .|
|.Eo +. +. + + |
|o. =.o+ .o.+… |
|.o… oo=+ o=o.+|
+----[SHA256]-----+
Jak skopiować klucz SSH za pomocą SSH-copy-id
Po wygenerowaniu klucza SSH możemy ręcznie dodać klucz SSH do pliku autoryzowanych_kluczy maszyny zdalnej lub użyć polecenia ssh-copy-id.
Aby ułatwić ten proces, użyjemy polecenia ssh-copy-id. Po prostu wywołaj polecenie ssh-copy-id i przekaż ścieżkę do klucza publicznego w następujący sposób:
$ identyfikator-kopii-ssh -i ~/.ssh/id_rsa.użytkownik [email protected] -p 6576Po wprowadzeniu powyższego polecenia powinieneś otrzymać następujące dane wyjściowe:
/usr/bin/ssh-copy-id: INFO: Źródło kluczy do zainstalowania: "/root/.ssh/id_rsa.pub"/usr/bin/ssh-copy-id: INFO: próba zalogowania się przy użyciu nowych kluczy, aby odfiltrować te, które są już zainstalowane
/usr/bin/ssh-copy-id: INFO: 1 klucz(e) pozostało do zainstalowania -- jeśli teraz pojawi się monit, należy zainstalować nowe klucze [email protected]ło 101:
Liczba dodanych kluczy: 1 Teraz spróbuj zalogować się do komputera za pomocą: „ssh -p '6576”[zabezpieczony adres e-mail]” i upewnij się, że dodano tylko żądane klucze.
UWAGA: Nigdy nie kopiuj swojego klucza prywatnego na inny komputer.
Po pomyślnym wykonaniu polecenia spróbuj zalogować się do serwera za pomocą przesłanego klucza w następujący sposób:
$ ssh -p 6576 [email protected]Powyższe polecenie będzie wymagało wprowadzenia hasła do klucza publicznego, jak pokazano na poniższym rysunku:
Wpisz hasło dla klucza '/root/.ssh/id_rsa':Ostatnie logowanie: pt 5 marca 14:06:16 2021 od 173.208.98.186
Powyższe polecenie powinno umożliwić zalogowanie się do zdalnego hosta bez pytania o hasło użytkownika. System może poprosić Cię o wprowadzenie hasła klucza, który ustawiłeś wcześniej.
Opcje poleceń SSH-copy-id
Możesz zmodyfikować sposób działania polecenia ssh-copy-id za pomocą dostarczonych argumentów. Aby wyświetlić stronę pomocy, użyj polecenia ssh-copy-id -h lub użyj polecenia ssh-copy-id bez argumentów.
- -kłócę się: Ten argument określa plik tożsamości, który ma być użyty, i.mi., skopiowane do określonego zdalnego hosta. Jeśli nie podasz argumentu -i, wszystkie pliki w ~/.katalog ssh z pasującym wzorcem *.pub zostanie dodany.
- -f flaga: Ta flaga włącza tryb wymuszony, który nie sprawdza, czy klucz jest wstępnie skonfigurowany w Author_keys na serwerze. Flaga -f dodaje klucz, często skutkując wieloma kopiami tego samego klucza zainstalowanymi na serwerze.
- -flaga p: Ta flaga określa port SSH do połączenia ze zdalnym hostem. Ta flaga jest używana, gdy domyślny port SSH nie jest używany.
- -n flaga: Ta flaga wykonuje próbny przebieg, który drukuje klucze przeznaczone do instalacji bez instalowania ich na zdalnym hoście.
Wniosek
W tym przewodniku pokazano, jak używać polecenia ssh-copy-id do instalowania kluczy SSH na zdalnych hostach. Chociaż może to być prosta i wydajna metoda instalowania kluczy, źle skonfigurowane klucze mogą powodować problemy z bezpieczeństwem lub zablokowanie systemu. Dlatego bądź bardzo ostrożny podczas eksperymentowania z tym procesem.