Dove dovrebbe essere il mio file authorized_keys se voglio ssh su `localhost`?

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] 

Commenti

  • È lo stesso se voglio ssh localhost?
  • @MrDuk In questo caso, entrambe le estremità locale e remota sono la stessa macchina. Pertanto, devi avere la tua chiave pubblica allinterno di ~/.ssh/authorized_keys localmente. Per questo, puoi semplicemente utilizzare cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys. Ho modificato la mia risposta.
  • Forse le cose sono cambiate dalla tua risposta, ma dovevo aggiungere un -i al tuo primo comando, in modo che lintero comando abbia laspetto $ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *