2014-06-24 16 views
7

voglio generare un set di chiavi per un server principale che vorrei SSH, quindi fare ssh-keygen -t rsa, ma poi ho ottenere un messaggio: id_rsa already exists. Overwrite (y/n)?Aggiunta di una chiave RSA senza sovrascrivere

Beh, io don Voglio sovrascrivere perché le chiavi che ho ora io uso per SSH nei server della mia università, e sarebbe un problema dover fare di nuovo tutte quelle cose ogni volta che volevo cambiare. C'è un modo semplice per aggiungere le chiavi? Ho provato a seguire un tutorial (che non riesco a trovare) che suggerisce qualcosa sull'utilizzo del comando cat, ma sono piuttosto perso. Sembra che la soluzione sia qualcosa di molto semplice che non vedo.

risposta

1

Se ricordo correttamente, ho risolto questo problema disinstallando Cygwin e utilizzando invece la riga di comando.

6

È possibile utilizzare la stessa chiave pubblica su entrambi i server. Se non si vuole fare questo, basta specificare una posizione diversa rispetto ~/.ssh/id_rsa quando ssh-keygen avvisa prima che, e usarlo con un agente:

% ssh-agent sh # Replace with your favourite shell. 
$ ssh-add ~/.ssh/id_rsa_2 
$ ssh somewhere 
$ exit 
% 

ssh-agent può essere utilizzato anche senza avviare una nuova shell come eval $(ssh-agent) .

+0

In questo caso, sto cercando di eseguire quanto segue dal mio computer host (Windows 7, tramite Cygwin, cercando di copiare su Debian): 'ssh-copy-id -i" C:/Users/FirstName LastName/.ssh/id_rsa.pub "user @ hostname', ma si sta arrabbiando con me e sta dicendo" ERRORE: impossibile aprire il file ID "C:/Users/FirstName" – itsmichaelwang

+0

@Zapurdead: prova a scappare lo spazio e usa il singolo citazioni: ''C:/Users/FirstName \ LastName/.ssh/id_rsa.pub''. (Le virgolette singole non sono realmente necessarie, ma potrebbe anche non raddoppiare il '' \ ''.) 'Ssh-copy-id -i ~/.ssh/id_rsa.pub user @ hostname', even. – Ryan

+0

Ho provato il secondo e ottengo 'ERRORE: impossibile aprire il file ID '/ home/FirstName''. Sta pensando che il mio computer Windows sia un Linux? – itsmichaelwang

0

Si potrebbe fare come suggerito da minitech e utilizzare la stessa chiave pubblica ssh su entrambi i server. Per fare ciò, apri il file ~/.ssh/id_rsa.pub nell'editor di testo, copia il contenuto del file esattamente senza aggiungere nuovi spazi o nuove righe e aggiungilo al server a cui desideri connetterti. Se il tuo nome utente sul server è "utente" su ip 123.45.56.78, usa il comando "ssh-copy-id [email protected]", oppure puoi usare

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh & & cat >> ~/.ssh/authorized_keys"

2

È possibile raggiungere questo obiettivo utilizzando un file di configurazione nella vostra directory home sotto la directory .ssh:

  1. generare la vostra chiave come al solito:

    ssh-keygen -t rsa 
    
  2. non sovrascrivere il default (di solito id_rsa). Invece, crea un nuovo nome. Questo creerà un file separato con la tua chiave.

  3. in ~/.ssh creare un file config con il seguente contenuto:

    Host * (asterisk for all hosts or add specific host) 
        AddKeysToAgent yes 
        UseKeychain yes 
        IdentityFile <key> (e.g. ~/.ssh/yourKey) 
    
  4. La chiave è ora aggiunto al portachiavi e può essere utilizzato!

-

È possibile utilizzare più IdentityFiles nella configurazione (Mac esempio):

Host * 
    AddKeysToAgent yes 
    UseKeychain yes 
    IdentityFile ~/.ssh/id_rsa_private_server 
    IdentityFile ~/.ssh/id_rsa_github 
    IdentityFile ~/.ssh/id_rsa_work_server 
+0

Funziona con più chiavi ssh (identifica i file)? –

+0

Funziona per me :-) Ho tre diverse chiavi ssh per tre server separati e posso connettermi senza problemi a uno dei tre server usando la sintassi standard 'ssh myname @ myserver'. Se usi ssh -v (verbose) puoi vedere come prova tutti i file di identità nella tua cartella .ssh. – GreensterRox

+0

Quindi, quale specificare per il campo 'IdentityFile'? –

0

ho avuto questo problema come te. E l'avevo risolto.
Nel terminale,
"Enter file in cui salvare la chiave (/home/you/.ssh/id_rsa):"
invece di colpire Invio o la scrittura /home/you/.ssh/id_rsa
Lei scrive /casa tua/.ssh/id_rsa1

Problemi correlati