Come trasferire le mie chiavi SSH su un altro computer?


42

Ho conti su due macchine: H1 e H2. Ho creato i tasti ssh su H1 e l'ho installato su S1. Ora posso ssh a S1 da H1. Voglio fare lo stesso da H2. Come installo i tasti ssh generati su H1 su H2?


2
Poiché ssh-copy-idè una soluzione più sicura (nessuna sovrascrittura delle chiavi esistenti o la copia accidentale della chiave privata invece della chiave pubblica ) e una soluzione meno nota, si prega di considerare di accettare una di quelle risposte come risposta accettata.
agtoever,

Risposte:


28

Modificato: se possiedi entrambe le macchine, puoi condividere la tua chiave privata. Ma questa soluzione non è sicura per il caso di notebook rubati o per macchine che non possiedi.

È possibile copiare le chiavi private da H1 a H2, se si desidera utilizzare la stessa chiave privata per poter accedere da H2 a S1. Quando in H1 esegui i comandi:

H1$ ssh H2 mkdir ~/.ssh
H1$ scp  ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/

Avvertimento! Ciò eliminerà e sostituirà qualsiasi chiave privata posseduta in H2.

Il modo migliore è generare nuove chiavi private su H2 ( ssh-keygen) e installare la loro parte pubblica su S1 con ssh-copy-idutil. In questo caso più sicuro avrai due serie di chiavi; uno è per il login H1-S1 e il secondo per il login H2-S1. Ci saranno due chiavi pubbliche autorizzate in S1. E sarai in grado di revocare uno di essi o entrambi (ad esempio, quando il tuo notebook viene rubato o il proprietario della macchina decide di disabilitare il tuo account e riutilizzare tutti i tuoi file).


8
Copiare una chiave privata non è davvero una buona idea. Avere una sola chiave in più posizioni 1. la rende più vulnerabile, 2. aumenta il rischio di perdere il controllo di tutte le posizioni, 3. non consente di disabilitare l'accesso da una sola posizione. Dal punto di vista della sicurezza, dovresti generare una nuova coppia di chiavi in ​​ogni posizione: la soluzione di Mu Qiao.
pabouk,

27

Uso ssh-copy-id

SINOSSI

ssh-copy-id [-i [identity_file]] [user @] machine

DESCRIZIONE

ssh-copy-id è uno script che utilizza ssh per accedere a una macchina remota e aggiungere il file di identità indicato al file ~ / .ssh / authorized_keys di quella macchina.


1
@Voglio fare ssh da H2 a S1. Voglio trasferire e installare la mia chiave privata e pubblica da H1 a H2. Questo lo farà?
Bruce,

3
@Bruce no, devi rigenerare le chiavi su h2 e usare quel comando per copiare le tue chiavi. Un altro approccio consiste nel consentire a h1 e h2 di condividere la directory home.
Mu Qiao,

9

Usa due chiavi private

Imposta H2 usando lo stesso processo (ma non la stessa chiave privata) che hai fatto quando hai impostato H1:

  • Non c'è mai un buon motivo per copiare una chiave privata da qualche altra macchina. Se non hai già generato una nuova chiave privata su H2, fallo ora. Genera anche la chiave pubblica corrispondente. In un terminale su H2,

genere: ssh-keygen -t rsa

  • Copia la chiave pubblica di H2 sul server. In un terminale su H2,

genere: ssh-copy-id username@S1.net

(ma usa il tuo vero nome utente sul nome host di S1 ​​e S1, e successivamente inserisci la tua password su S1 quando lo richiede).

Ciò installa la chiave pubblica della workstation nel ~/.ssh/authorized_keysfile per l'utente sul server.

  • Non vi è alcun passaggio 3. Da ora in poi, è possibile accedere a S1 dal proprio H2 e anche accedere a S1 dal proprio H1.

dettagli

Presumo che quello che stai davvero chiedendo sia

  • Ho un server ("S1")
  • Accedo al mio server dal mio laptop personale ("H1")
  • Voglio anche accedere al mio server dalla mia workstation ("H2").

Qual è il modo giusto per farlo?

  • Suppongo che potrei semplicemente accedere con la stessa password da entrambi i posti. Questo non può essere il modo giusto, perché tutti dicono che l'autenticazione con chiave pubblica è molto meglio delle password. (un)
  • Suppongo che potrei semplicemente copiare la chiave privata dal mio laptop alla mia workstation. Questo non può essere il modo giusto, perché tutti dicono che la chiave privata non dovrebbe mai lasciare la macchina client.

Le persone hanno capito che un account su un server ha un solo nome utente e, naturalmente, una singola password autorizzata.

I sistemi a chiave pubblica come ssh sono migliori del sistema di password: un account su un server ha un solo nome utente e un numero qualsiasi di chiavi pubbliche autorizzate , tutte elencate nel ~/.ssh/authorized_keysfile.

( maggiori dettagli ).


Perdonami per ripetermi .
David Cary,

0

Ssh-copy-id farebbe il lavoro per te: http://linux.die.net/man/1/ssh-copy-id ?


@Voglio fare ssh da H2 a S1. Voglio trasferire e installare la mia chiave privata e pubblica da H1 a H2. Questo lo farà?
Bruce,

2
Se hai effettuato l'accesso a S1 o H1 (che ora hanno la tua chiave) usando ssh-copy-id ti permetterà di trasferire la tua chiave pubblica (non privata) su H2. In generale, è consigliabile limitare il numero di macchine su cui è installata la chiave privata. Cerca di tenerlo su alcune macchine sicure solo per prevenirne la perdita.

Come copio la mia chiave privata su H2?
Bruce,

0

Per lo spostamento delle chiavi SSH da un computer a un altro. Basta copiare l'intera cartella da ~ / .ssh da H1 (vecchia macchina) nella cartella dei contenuti ~ / .ssh della nuova macchina H2.

Ora prova:

ssh ubuntu@13.123.43.26 (il tuo ip S1)

Molto probabilmente riceverai un avviso di autorizzazione per correggere l'esecuzione:

chmod 400 ~ / .ssh / id_rsa

Ora di nuovo:

ssh ubuntu@13.123.43.26 (il tuo ip S1)

Funzionerà bene ora.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.