come SSH su EC2 senza usare esplicitamente la chiave pem?


21

Ho un windows come il mio sistema operativo principale. Usando il lettore VMware, ho installato un server Ubuntu 12.4 come macchina guest. Il server Ubuntu ha l'utente "ubuntu".

Ho creato una nuova istanza EC2 + setup pem key. Dal computer Windows, quando uso putty + chiave pem - posso ssh.

Ho aggiunto la chiave pem al mio server Ubuntu VMware (/home/ubuntu/.ssh/) Inoltre, ho impostato le seguenti autorizzazioni: chmod 700 /home/ubuntu/.ssh chmod 600 /home/ubuntu/.ssh/*

Attraverso il server di Ubuntu - ho cercato di SSH per l'istanza EC2 senza successo: ssh ubuntu@EC2_IP Permission denied (publickey) . Se utilizzo esplicitamente la chiave pem, funziona: ssh -i /home/ubuntu/.ssh/NAME.pem ubuntu@EC2_IP - Nota che devo usare il percorso diretto alla chiave, altrimenti otterrò Warning: Identity file NAME.pem not accessible: No such file or directory. Permission denied (publickey).

Si prega di avvisare. Grazie!

Risposte:


18

Di default il client SSH cercherà chiavi denominate id_rsa, id_dsae id_ecdsain ~/.ssh/. Se la tua chiave non ha un nome simile, devi specificarla nella riga di comando con -icome hai già fatto oppure specificarla nella configurazione del client.

Puoi aggiungere qualcosa del genere a ~/.ssh/configper selezionare automaticamente questa chiave quando SSHing in EC2:

Host *.compute-1.amazonaws.com
    IdentityFile ~/.ssh/ec2_rsa


2

Come si chiama la chiave privata? Dovrebbe avere il nome file id_rsa predefinito (rinominare il file pem in /home/ubuntu/.ssh/id_rsa)


si chiamava eldad.pem (nome predefinito da AWS). L'ho rinominato in id_rsa e ha funzionato. c'è un modo per mantenerlo nel nome attuale e ancora usarlo?
user798562

Sì, Daniel lo ha già scritto nella sua risposta :)
Andrei Mikhaltsov il

1

È possibile utilizzare ssh-agente ssh-addper evitare di specificare esplicitamente la chiave privata.

Puoi inserire i comandi nel tuo .profileo .bashrccosì vengono eseguiti ogni volta che accedi. Puoi trovare uno script di avvio di esempio in fondo a questo post .


L'ho fatto, ma quando riavvio, devo farlo di nuovo. Un modo per evitarlo?
user798562

Modificato la mia risposta per includerla.
David Levesque,

0

Il client ssh cerca in identify filebase alla configurazione impostata in /etc/ssh/ssh_config. Quindi puoi specificare il file di identità lì, e ricorda che puoi avere più file di identità elencati nel file di configurazione del client ssh. Dalla pagina man di ssh -

    -i identity_file
         Selects a file from which the identity (private key) for public key authentication is read.  The default is ~/.ssh/identity
         for protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/id_rsa for protocol version 2.  Identity files may also
         be specified on a per-host basis in the configuration file.  It is possible to have multiple -i options (and multiple identiâ
         ties specified in configuration files).

Per la chiave RSA, ad esempio, il percorso predefinito è ~ / .ssh / id_rsa. Come ha suggerito Andrei Mikhaltsov, puoi posizionare la tua chiave privata in / home / ubuntu / ssh / id_rsa e potrai connetterti senza specificarla dalla riga di comando. Se quel nome file esiste già e contiene un'altra chiave privata, è comunque possibile personalizzare il file di configurazione del client ssh nel IdentityFileparametro.

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.