2010-11-20 16 views
52

Domanda come titolo. Perché è questo, ho usato il comando ssh: ssh -i mykey.pem [email protected] Ma ottengo quell'errore, non trovo nulla su google. Che cosa sto facendo di sbagliato?SSHing nel server EC2 tramite errore di accesso Effettuare l'accesso come utente utente di ec2 anziché utente root

+1

Sono stato confuso dal messaggio di errore poco punteggiato: ho provato ad accedere come "utente" anziché "ec2-utente". Una volta capito l'errore, ha funzionato bene. – offby1

+0

quando provo ad accedere come ec2_user, mi chiede il passwd, che, ovviamente, non ho - non so nulla dell'AMI – amphibient

risposta

73

si accede come ec2-user come suggerito Klaus:

ssh -i key.pem [email protected] 

... e quindi si utilizza sudo per eseguire i comandi. Ad esempio, per modificare il file /etc/hosts che è di proprietà di root e richiede i privilegi di root: sudo nano /etc/hosts.

Oppure si esegue sudo su per diventare l'utente root.

+1

Dove è questo scritto nei documenti di Amazon? Non ho trovato nessuna informazione lì. – jayarjo

+1

http://ec2-downloads.s3.amazonaws.com/AmazonLinuxAMIUserGuide.pdf Till

+0

quando eseguo sudo su come ec2-utente, richiede una password. Non ho impostato alcuna password. forse qualcosa a che fare con il file sudoers? –

7

Penso che ti stia solo chiedendo di accedere con un altro nome utente. Ti capita di avere un utente chiamato ec2-user? Se è così, provate questo invece:

ssh -i mykey.pem [email protected] 
+0

BUt se poi faccio questo, non ho i privilegi dell'utente , mi chiede di accedere come root – Tom

+0

@Tom Si passa all'account root dopo aver effettuato l'accesso con il comando 'su -' –

+0

Cosa fare se si desidera automatizzare questo passaggio ed eseguire i comandi privilegiati di root da uno script? – OutputLogic

60

Per impostazione predefinita root l'utente non è autorizzato ad accedere ma è possibile utilizzare ec2-user come indicato da altri.

Dopo aver effettuato l'accesso con ec2-user, passare a root e modificare la configurazione SSH.

Per diventare l'utente root eseguire:

sudo su - 

Modificare il demone di file di configurazione SSH /etc/ssh/sshd_config, per esempio utilizzando VI, e sostituire la voce PermitRootLogin con il seguente:

PermitRootLogin without-password 

ricaricare la configurazione demone SSH eseguendo:

/etc/init.d/sshd reload 

Il messaggio Please login as the ec2-user user rather than root user. viene visualizzato a causa di un comando viene eseguito quando si effettua il login con il chiave privata. Per rimuovere quel comando modifica il file ~/.ssh/authorized_keys e rimuovi l'opzione command. La linea dovrebbe iniziare con il tipo di chiave (es. Ssh-rsa).

(*) Fai a tuo rischio. Ti consiglio di lasciare sempre aperta una console nel caso in cui non sei in grado di accedere dopo aver apportato le modifiche di configurazione.

Come riferimento è possibile leggere le pagine man:

man sshd_config 
man sshd 
+11

+1 per raccomandare di lasciare una console aperta :) – KaKa

+0

Questo è il trucco. – user435216

+0

Questa è la risposta che mi aspetto. Grazie –

0

Modifica/etc/ssh/sshd_config e assicurarsi che questo è impostato:

PasswordAuthentication sì

quindi ricaricare SSH:

systemctl reload sshd.service

Ora è possibile accedere come utenti diversi da ec2-user.

10

Ho riscontrato un problema simile durante l'impostazione di un cluster hadoop su Amazon ec2.

Il nodo principale deve disporre dell'accesso root ssh a ciascun nodo worker/slave. Ho eseguito il aliasing delle connessioni aggiungendo l'indirizzo IP di ciascun nodo slave, l'indirizzo privato e il nome alias al file /etc/hosts/. (Mi capita che i dati eseguendo il comando echo -e "`hostname -i`\t`hostname -f`\talias-name" dove alias-name è ciò che chiamo ogni nodo (head o n1 per esempio). Poi ho messo che in uscita per ciascun nodo di file di ogni nodo /etc/hosts.

Il problema che ho incontrando è che quando si digita ssh n1 mentre nella mia nodo principale a ssh nel mio primo nodo slave, ottengo lo stesso messaggio di errore: Please login as the use "ec2-user" rather than the user "root". Così, dopo aver fatto qualche ricerca, ho capito come risolvere il problema

First.:

  • ssh nel server. l'accesso non-root (ec2-user) va bene qui.
  • Quindi il su - come root. Ora vi /etc/ssh/sshd_config e non commentare la riga PermitRootLogin yes.
  • Esci dall'editor vi.
  • Ora riavviare il daemon ssh digitando service sshd stop quindi service sshd start.

Secondo:

  • Ora, qui è la parte che ho dovuto scavare per,
  • corsa vi /root/.ssh/authorized_keys
  • commento tutto ciò fino a ssh-rsa. Basta mettere un # all'inizio del contenuto del file, prima di no-port-forwarding ... e premi invio su ssh-rsa per spostarlo su alla riga successiva (in questo modo non è necessario eliminare qualsiasi cosa nel caso in cui si desideri eseguire il backtrack su ).
  • editor di uscita vi

Ora si dovrebbe essere in grado di accedere al root senza quel messaggio di errore popping up.

Inoltre, se si utilizzano alias per l'installazione di un cluster; Ripeti gli stessi passaggi su ciascun nodo. Prima ssh usando ec2-user poi segui i passaggi. Dopo aver aggiunto l'indirizzo IP, l'indirizzo privato e le informazioni sul nome alias al file /etc/hosts, dovresti essere in grado di ssh nella root di ciascun nodo utilizzando il nome alias, ad esempio ssh n1.

Il tutorial che ho seguito è qui: https://www.youtube.com/watch?v=xrxQXfE7t9A

Ma non ha ancora discutere il problema con login di root.

Spero che questo aiuti! Ha funzionato per me.

* Tenere presente che non ho preso in considerazione alcuna sicurezza. Questa è semplicemente una pratica/impostazione di sviluppo.

+0

grazie :) ho avuto bisogno di accedere come root per inoltrare la porta 80 al mio computer locale, cosa che non posso fare come ec2-user – necromancer

+0

Il secondo passo è il trucco. Questa dovrebbe essere la risposta accettata! – stonyau

+0

Questa è la risposta pratica di aws ec2. grazie per questo! –

Problemi correlati