Come si configura l'accesso SSH per un'istanza Amazon EC2?


87

Ho bisogno dell'accesso SSH a un'istanza Amazon EC2 che esegue Ubuntu 10.4. Tutto quello che ho è il nome utente e la password di Amazon. Qualche idea?


2
Non dimenticare di eseguire chmod 400 my_private_key.pem.txt dopo averlo scaricato.
Peter Kaminski

Risposte:


159

Fondamentalmente, hai bisogno di un file di chiave privata per accedere al tuo EC2 tramite SSH. Segui questi passaggi per crearne uno:

  • Vai su https://console.aws.amazon.com/ec2/home e accedi al tuo account Amazon esistente.
  • Fare clic su "Coppie di chiavi" su LHS o https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs .
    • Dovresti vedere l'elenco delle CHIAVI generate da te (o durante il processo di creazione di EC2).
    • Clicca su "Crea coppia di chiavi" se non ne vedi nessuna o se hai perso la tua chiave privata.
    • Immettere un nome univoco e premere invio.
    • Apparirà un pannello di download per salvare la chiave privata, salvarla.
    • Tienilo da qualche parte con l'autorizzazione del file "0600"
  • Fai clic su "Istanze" su LHS o https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances
    • Dovresti vedere l'elenco delle istanze ec2, se non ne vedi nessuna, creane una.
    • Fare clic sulla macchina EC2 e annotare l'indirizzo DNS pubblico.
  • Apri il tuo terminale (in Linux) e digita il seguente comando
    • ssh -i /path/to/private-key root@<ec2-public-dns-address>- il nome utente root è stato evitato nelle ultime versioni, in base alla selezione della distribuzione ec2-usero ubuntucome nome utente.
    • premi Invio
    • Questo è tutto.

6
Probabilmente non puoi accedere come root direttamente tramite ssh. Dovrai usare un account non root come ec2-user quindi 'ssh -i / path / to / private-key ec2-user @ hostname
timbo

4
Una volta che ho provato a connettermi, mi ha detto che avrei dovuto usare il ubuntulogin invece di root. Apparentemente ho l'istanza 12.04 del server Ubuntu.
Vasiliy Stavenko

3
Ho creato con successo l'account SSH, il prossimo è come caricare i file utilizzando SCP con l'account creato ??? Quando provo a caricare utilizzando SCP, viene visualizzato il messaggio "Autorizzazione negata (chiave pubblica)".
Ashok KS

5
ricevo ancora questo messaggio "Permesso negato (chiave pubblica)". Perché?
Kasun Kariyawasam

2
Riceverete tutti "Autorizzazione negata (chiave pubblica)". potrebbe utilizzare Elastic Beanstalk. In tal caso, è necessario accedere a EB env Config, Security e scegliere la nuova coppia di chiavi. Verranno create nuove istanze EC2 che accettano la chiave. E il nome utente è ec2-usero forse ubuntu, ma non root.
Jorge Orpinel

25
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>

basta usare ubuntuinvece di root. Il tuo problema sarà risolto. Saluti!


12

PASSAGGIO 1) Scarica le chiavi private assegnate alla tua macchina ec2 (che viene scaricata solo una volta quando viene creata. Quindi è consigliabile eseguire il commit da qualche parte)

FASE 2) e spara i seguenti comandi,

chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

Documento ufficiale : connessione alle istanze Linux / Unix tramite SSH


7

Nota, l'utente corrente per la 13.04 è "ubuntu" ssh -i ./mykey.pem ubuntu@ec2-xxx-xxx-xxx-1.compute-1.amazonaws.com


4

Devi prima creare una coppia di chiavi: fallo utilizzando la tua console EC2. Quindi utilizza la tua chiave privata per SSH nel server (il nome utente è ec2-user) utilizzando un client SSH di tua scelta.

Una volta entrati, puoi emettere un sudo su -per ottenere il root se vuoi (nota: non puoi accedere direttamente come root).


4

Se stai usando MacOS, dovresti creare / modificare il file di configurazione SSH (~ / .ssh / config) e inserire qualcosa come:

Host *.amazonaws.com
    User ubuntu
    Port 22
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    IdentityFile ~/PATH/YOUR_DOWNLOADED_KEY.pem

Quindi per connettersi a una qualsiasi delle istanze EC2:

ssh MYNAME.amazonaws.com

Niente di più!


E se avessi una chiave multi-pal per diverse regioni come us-east-1.pem e us-west-2.pem
Haseeb

1

Per configurare Ubuntu su AWS, segui i seguenti passaggi:

  1. Accedi ad Amazon Web Services e seleziona EC2 .
  2. Scegli Avvia istanza e segui la procedura guidata selezionando l'immagine corretta (Ubuntu), il tipo di istanza, configurando la rete VPC e la sottorete, l'archiviazione e consentendo l'accesso SSH nei gruppi di sicurezza . Quindi avvia .
  3. Per la prima volta, probabilmente è necessario configurare la coppia di chiavi e assegnarla all'istanza. Puoi anche creare una coppia di chiavi in ​​Coppie di chiavi . Una volta creato, scarica il file PEM e conservalo in un luogo sicuro.
  4. Una volta avviata l'istanza, attendere che l'istanza venga inizializzata e in esecuzione .

Per accedere all'istanza tramite SSH, esegui:

  1. Connettiti a Linux box specificando il tuo file PEM, ad es

    ssh -i "file.pem" ubuntu@x.x.x.x
    

    Assicurati che il tuo file PEM abbia l'autorizzazione 600 ( chmod 600 file.pem).

Risoluzione dei problemi

Se stai eseguendo un'istanza VPC e il tuo gruppo di sicurezza è corretto (con le regole giuste) e ancora non funziona, nella sezione VPC controlla la tua sottorete che dovrebbe essere collegata al tuo VPC (entrambi utilizzati dalla tua istanza) e imposta nuova regola nella Route Table che ha 0.0.0.0/0come destinazione e il tuo gateway Internet come destinazione .

Per maggiori dettagli, controlla: Risoluzione dei problemi di connessione all'istanza

Vedi anche: Possibili ragioni del timeout quando si tenta di accedere all'istanza EC2


1

1) In primo luogo chmodla .pem fileper limitare i permissons file come di seguito

chmod 400 my-key-pair.pem

2) Quindi sshcon i seguenti comandi direttamente dalla .sshcartella

ssh -i my-key-pair.pem ec2-user@ec2-198-99-90-3.compute-1.amazonaws.com

Nota: - Per navigare nella .sshcartella. Prima premi Ctrl + Hper visualizzare tutti i file nascosti e infinecd .ssh


0

Il problema potrebbe essere il mancato accesso come utente corretto per il tuo OS Distro. Per alcune nuove AMI, il nome utente potrebbe non essere "ubuntu", ma "ec2-user". Per Amazon Linux, ad esempio, credo che l'utente sia "ec2-user". Eric Hammond fornisce esempi qui: http://alestic.com/2014/01/ec2-ssh-username

Il mio suggerimento, prova:

ssh -i /path/to/file.pem ec2-user@ec2...

ssh -i /path/to/file.pem ubuntu@ec2...

ssh -i /path/to/file.pem root@ec2...

Se hai l'AMI sbagliata, potresti voler riavviare del tutto la macchina in modo da avere l'uniformità tra i tuoi cluster. Se questo è il tuo problema, probabilmente vorrai lo stesso OS Distro almeno per le tue macchine Linux.


0

Fare ciò che viene suggerito in tutte queste risposte non è sufficiente. In ogni istanza vedi un gruppo di sicurezza. Quando avvii una nuova istanza, avrai questa cosa impostata come predefinita. È necessario modificare il gruppo di sicurezza e aggiungere la porta ssh. Successivamente dovrai aggiungere le porte 8080, 8443, 80, 443 anche quando vuoi ospitare il tuo sito web.


0

Ho accettato l'offerta di AWS di utilizzare i gruppi di sicurezza predefiniti che includevano le porte "All Trafic".

E, dopo molte e molte volte tentando di connettermi alla mia nuova istanza ec2, mi sono appena reso conto che avrei dovuto modificare il mio gruppo di sicurezza utilizzato e aggiungere manualmente alla porta 22 in entrata e in uscita (ssh)!

Spero che sia d'aiuto !


0

Prima modifica dell'autorizzazione del file pem di

chmod 400 path/to/key_pair.pem

All'interno del file ~ / .ssh / config aggiungi le seguenti righe, all'inizio del file

Host AWS
     Hostname myserver.com
     User myuser
     IdentityFile path/to/.pem/file
     port 22

Il nome host prende l'IP o il collegamento del server, l'utente prende il nome utente del server e il file di identità viene scaricato da AWS quando hai creato l'istanza. Basta eseguire il seguente comando nel terminale

ssh AWS

e divertiti!

Nota : per navigare nella .sshcartella. Prima premi Ctrl + Hnella cartella home per visualizzare tutti i file nascosti e infinecd .ssh


0

Assicurati che queste cose siano sotto controllo

  1. la chiave privata deve disporre dell'autorizzazione 400

  2. Assicurati che la porta 22 sia aperta per l'istanza AWS a cui stai tentando di accedere.

  3. ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX // XXX.XXX.XXX.XXX = IP pubblico della tua istanza
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.