Ho impostato la mia chiave pubblica / privata, ma non so dove dovrebbe andare. Entrambi questi file devono essere inseriti in ~/.ssh/
per il mio utente?
Risposta
La chiave privata rimane a casa. La chiave pubblica viaggia:
- Inserisci la tua chiave privata in
~/.ssh
(host locale). Di solito sarà~/.ssh/id_rsa
. - Inserisci la tua chiave pubblica in
~/.ssh/authorized_keys
(host remoto).
Mentre il primo passaggio di solito viene eseguito automaticamente quando crei il chiave, la seconda può essere eseguita tramite:
$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost
Se hai una configurazione residua riguardante lhost remoto, potresti incorrere in qualche problema con questo (autenticazione fallita o “troppi errori di autenticazione” ). Per eliminare questo problema, puoi forzare ssh-copy-id
a utilizzare lautenticazione tramite password con:
$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost
Ovviamente o una volta posizionate correttamente le chiavi, non è più necessaria una password:
$ ssh user@remotehost
Potresti anche voler aggiungere una configurazione SSH in ~/.ssh/config
per renderlo ancora più semplice:
Host [custom name for the remote machine] Hostname [remote hostname or IP] User [remote username] IdentityFile /home/[your local user]/.ssh/id_rsa
Grazie a questo, puoi semplicemente digitare quanto segue per accedere allhost remoto:
$ ssh [custom name for the remote machine]
Modifica: se entrambe le macchine (locale e remota) sono uguali, puoi semplificare la procedura con:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Questo aggiungerà la tua chiave pubblica al file authorized_keys
. Ovviamente, un altro modo per accedere come qualcun altro sulla tua macchina locale è usare:
$ su [another user]
Questo ti salverà la transazione SSH dove potresti non averne bisogno . su
senza password può essere impostato utilizzando sudo
:
$ sudo -iu [another user]
ssh localhost
?~/.ssh/authorized_keys
localmente. Per questo, puoi semplicemente utilizzarecat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
. Ho modificato la mia risposta.-i
al tuo primo comando, in modo che lintero comando abbia laspetto$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost
.