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]
ssh localhost
?~/.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ź.-i
do twojego pierwszego polecenia, aby całe polecenie wyglądało jak$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost
.