Gdzie powinien znajdować się plik Authorized_keys, jeśli chcę ssh do `localhost`?

Mam skonfigurowany klucz publiczny / prywatny, ale nie wiem, gdzie powinien się znaleźć. Czy oba te pliki należy umieścić w ~/.ssh/ dla mojego użytkownika?

Odpowiedź

Klucz prywatny pozostaje w domu. Klucz publiczny jest przesyłany:

  • Umieść swój klucz prywatny w ~/.ssh (host lokalny). Zazwyczaj będzie to ~/.ssh/id_rsa.
  • Umieść swój klucz publiczny w ~/.ssh/authorized_keys (zdalnym hoście).

Podczas gdy pierwszy krok jest zwykle wykonywany automatycznie podczas tworzenia klucz, drugi może być wykonany przez:

$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost 

Jeśli masz jakąś resztkową konfigurację dotyczącą zdalnego hosta, możesz napotkać z tym problem (niepowodzenie uwierzytelnienia lub „zbyt wiele błędów uwierzytelniania” ). Aby pozbyć się tego problemu, możesz zmusić ssh-copy-id do korzystania z uwierzytelniania za pomocą hasła:

$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost 

Oczywiście o Jeśli klucze są prawidłowo umieszczone, nie ma już potrzeby podawania hasła:

$ ssh user@remotehost 

Możesz również dodać konfigurację SSH w ~/.ssh/config aby było to jeszcze prostsze:

Host [custom name for the remote machine] Hostname [remote hostname or IP] User [remote username] IdentityFile /home/[your local user]/.ssh/id_rsa 

Dzięki temu wystarczy wpisać następujące polecenie, aby zalogować się do zdalnego hosta:

$ ssh [custom name for the remote machine] 

Edycja: jeśli obie maszyny (lokalna i zdalna) są takie same, możesz uprościć procedurę poprzez:

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

Spowoduje to dołączenie Twojego klucza publicznego do pliku authorized_keys. Oczywiście innym sposobem na zalogowanie się jako ktoś inny na komputerze lokalnym jest użycie:

$ su [another user] 

Pozwoli ci to zaoszczędzić transakcję SSH tam, gdzie może jej nie być potrzebna . Bez hasła su można skonfigurować za pomocą sudo :

$ sudo -iu [another user] 

Komentarze

  • Czy to to samo, jeśli chcę ssh localhost?
  • @MrDuk W tym przypadku zarówno lokalny, jak i zdalny koniec to ta sama maszyna. Dlatego musisz mieć swój klucz publiczny wewnątrz ~/.ssh/authorized_keys lokalnie. W tym celu możesz po prostu użyć cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys. Zmieniłem moją odpowiedź.
  • Może coś się zmieniło od czasu Twojej odpowiedzi, ale musiałem dodać -i do twojego pierwszego polecenia, aby całe polecenie wyglądało jak $ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *