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


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, incluso il bestiame, 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 di convenienza da qualche parte nel pacchetto ssh di Ubuntu?

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


296
2017-09-27 20:24


origine


askubuntu.com/questions/307881/... - Vineet


risposte:


Il ssh-copy-id comando (nel openssh-client pacchetto e installato di default) fa esattamente questo:

ssh-copy-id user@hostname.example.com

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

L'identità predefinita è la tua chiave SSH "standard". Consiste di due file (chiave pubblica e privata) nel tuo ~/.ssh directory, 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.

Nel caso in cui non si disponga di un'identità, è possibile generarne 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 "user@hostname.example.com -p <port-number>"

408
2017-09-27 21:01



Qual è l'identità predefinita? - Oxwivi
@Oxwivi: l'identità predefinita è la tua chiave SSH "standard". Consiste di due file (chiave pubblica e privata) nel tuo ~/.ssh directory, normalmente chiamata "identità", 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 il file, ssh-copy-id lo sceglierò automaticamente. - Marcel Stimberg
per diverse porte usa questo: ssh-copy-id "user@host -p 6842" - jibon57
Cosa succede se il server remoto su cui si sta copiando non consente la richiesta di password ed è fondamentalmente bloccato per risparmiare per l'accesso SSH? - Cyle
Su Mac puoi farlo brew install ssh-copy-id e quindi eseguire il comando. - Avishai


Mi piace la risposta di Marcel. Non conoscevo questo comando. Ho sempre usato ciò che avevo trovato su a 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 raggiunto in codice shell con il potere di ssh. Ma usando il ssh-copy-id è sicuramente un modo più sicuro per farlo correttamente!

Si noti che se la cartella .ssh non esiste già, il comando precedente fallirà. 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"'

113
2017-10-11 22:26



Anche questi comandi esatti funzionano anche da un Mac - Mihai P.
Dovrebbe funzionare con qualsiasi Unix con la maggior parte delle shell. Ho aggiornato il post con un comando aggiornato nel caso in cui la cartella .ssh non esiste sul lato remoto. - Huygens
Il cat non è necessario - è sufficiente un normale reindirizzamento dell'ingresso, ad es. < ~/.ssh/id_rsa.pub | ssh ... - maxschlepzig
@Huygens Grazie. Più utile ricordarlo, perché non è necessario installare nulla e può anche essere utile per eseguire comandi esterni, ad es. cambiare le autorizzazioni lato server come hai dimostrato nell'esempio avanzato. - Jonathan Komar
Preferisco di gran lunga questo modo in quanto ti permette di usare ssh verboso che è utile per capire perché le cose si rompono. sshcopyid si è appena congelato e non ha mai funzionato, questo è andato perfettamente. - Sirens


Metodo grafico

  1. Aperto applicazioni ▸ Password e chiavi ▸ Le mie chiavi personali.
  2. Seleziona la tua chiave e poi clicca A distanza ▸ Configura la chiave per Secure Shell.

Set Up Computer for SSH Connection


25
2017-09-27 20:32



Non ho "Password e chiavi di crittografia" nel mio menu. - Jorge Castro
Quale versione di Ubuntu stai usando? In Ubuntu 10.04 LTS questo dovrebbe essere disponibile per impostazione predefinita. - ændrük
10.10, ho appena aggiunto il tag. La risposta di Marcel è ciò che sto cercando, anche se +1 per la tua risposta orientata al desktop! - Jorge Castro
Questo programma è seahorse. - Gilles
Penso che questa applicazione sia nel menu Sistema-> Preferenze in 10.10 (non posso verificarlo adesso, sono il 10.04) - Huygens


Su Ubuntu puoi scaricare le tue chiavi da Launchpad:

ssh-import-id [launchpad account name]

Dettagli:

  1. Hai bisogno di un account Launchpad così Login o creare un account
  2. Dopo aver effettuato l'accesso, fai clic sul pulsante accanto a Chiavi 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 è andato bene, la tua chiave dovrebbe ora essere elencata sotto Chiavi SSH:

Il pacchetto ssh-import-id deve essere installato sulla macchina che deve essere accessibile da remoto. Questo pacchetto è installato insieme al openssh-serverpacchetto in quanto è un pacchetto consigliato per openssh-server. Dopo esserti assicurato che ssh-import-id è stato installato Sul computer client, eseguire:

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 realizzare lo stesso con:

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

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


18
2018-06-10 19:20





per porta personalizzata

ssh-copy-id -i "user@hostname.example.com -p2222"

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

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


12
2018-03-08 20:16



Ne sei sicuro? ATTENZIONE? "-i identity_file - Usa solo le chiavi contenute in identity_file (piuttosto che cercare identità tramite ssh-add (1) o in default_ID_file) .Se il nome file non termina con .pub questo è aggiunto. è omesso, viene utilizzato il file_ID_predefinito. " - Yousha Aleayoub