Il modo più semplice per copiare le chiavi ssh su un'altra macchina?

294

Sono pigro a casa e uso l'autenticazione della password per le mie macchine domestiche. Sono pronto a passare all'autenticazione basata su chiave. Ci sono molte opzioni sul web su come fare questo, tra cui la cattività, quindi copiare la chiave, scavare direttamente la chiave, ecc.

Sto cercando il modo più semplice e consigliato per copiare una chiave, speriamo che ci sia un wrapper conveniente da qualche parte nel pacchetto ssh di Ubuntu?

Sono già a conoscenza di come disattivare gli accessi alle password .

    
posta Jorge Castro 27.09.2010 - 22:24

5 risposte

406

Il comando ssh-copy-id (nel pacchetto openssh-client e installato per impostazione predefinita) fa esattamente questo:

ssh-copy-id [email protected]

copia la chiave pubblica dell'identità predefinita (usa -i identity_file per altre identità) sull'host remoto.

L'identità predefinita è la tua chiave ssh "standard". Consiste di due file (chiave pubblica e privata) nella tua directory ~/.ssh , normalmente denominata identity , id_rsa o id_dsa (e lo stesso con .pub ), a seconda del tipo di chiave. Se non hai creato più di una chiave ssh, non devi preoccuparti di specificare l'identità, ssh-copy-id la sceglierà automaticamente.

Se non hai un'identità, puoi crearne una con lo strumento ssh-keygen .

Inoltre, se il server utilizza una porta diversa da quella predefinita ( 22 ) dovresti usare le virgolette in questo modo ( fonte ):

ssh-copy-id "[email protected] -p <port-number>"
    
risposta data Marcel Stimberg 27.09.2010 - 23:01
112

Mi piace la risposta di Marcel. Non conoscevo questo comando. Ho sempre utilizzato ciò che avevo trovato su un sito web di SUN :

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'

Ho pensato di postarlo qui ancora, perché è una buona illustrazione di ciò che può essere ottenuto in codice shell con la potenza di ssh . Ma usare ssh-copy-id è sicuramente un modo più sicuro di farlo correttamente!

Si noti che se la cartella .ssh non esiste già, il comando precedente avrà esito negativo. Inoltre, potrebbe essere meglio quando si crea il file per impostare un permesso minimo possibile (fondamentalmente in lettura-scrittura solo per il proprietario). Ecco un comando più avanzato:

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'
    
risposta data Huygens 12.10.2010 - 00:26
25

Metodo grafico

  1. Apri Applicazioni Password e chiavi Le mie chiavi personali .
  2. Seleziona la tua chiave e fai clic su Remoto Configura chiave per Secure Shell .

    
risposta data ændrük 27.09.2010 - 22:32
18

Su Ubuntu puoi scaricare le tue chiavi da Launchpad:

ssh-import-id [launchpad account name]

Dettagli :

  1. È necessario un account Launchpad in modo che esegua l'accesso o crei un account
  2. Dopo aver effettuato l'accesso, fai clic sul pulsante accanto a Tasti SSH:
  3. Incolla il contenuto del tuo file di chiave pubblica in quel campo (incluso il commento). Tale chiave assomiglia a:

    ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
    

    Qui, ssh-rsa indica che la chiave è una chiave RSA, AAAAB3Nza .... UyDOFDqJp è la chiave effettiva e lekensteyn è il commento.

  4. Salva la chiave premendo Importa chiave pubblica
  5. Se tutto andava bene, la tua chiave dovrebbe ora essere elencata sotto chiavi SSH:

Il pacchetto ssh-import-id deve essere installato sulla macchina a cui è necessario accedere da remoto. Questo pacchetto è installato insieme al pacchetto openssh-server poiché è un pacchetto consigliato per openssh-server . Dopo esserti assicurato che ssh-import-id sia stato installato Sul computer client, esegui:

ssh-import-id [launchpad account name]

Questo scaricherà la chiave pubblica dai server Launchpad su HTTPS che ti protegge dagli attacchi MITM.

Su Ubuntu Lucid e prima, puoi fare lo stesso con:

wget https://launchpad.net/~[lp acount name]/+sshkeys -O - >> ~/.ssh/authorized_keys && echo >> ~/.ssh/authorized_keys

Il comando echo è necessario per ottenere una nuova riga aggiuntiva dopo la riga con il tasto SSH.

  • Pagina manuale di ssh-import-id
risposta data Lekensteyn 10.06.2011 - 21:20
12

per porta personalizzata

ssh-copy-id -i "[email protected] -p2222"

-i passa di default a ~ / .ssh / id_rsa.pub, se vuoi un'altra chiave, metti il ​​percorso della chiave dopo -i

ATTENZIONE: se non hai scritto il -i copierà tutte le tue chiavi trovate in ~ / .ssh

    
risposta data Omar A. Shaban 08.03.2013 - 21:16

Leggi altre domande sui tag