web-dev-qa-db-fra.com

Comment puis-je activer l'accès SSH racine dans une instance Amazon EC2?

Ce problème me dérange depuis plusieurs jours.

J'ai travaillé sur la configuration d'un serveur LAMP sur Amazon EC2. Le problème principal est que j'écris une application pour un client qui nécessite beaucoup de traitement haut de gamme, et Amazon EC2 semblait être un bon choix.

Au début, j'ai commencé avec une AMI de base qui n'avait vraiment rien. J'ai essayé d'utiliser l'accès root pour me connecter à SSH (en utilisant WinSCP) et on m'a dit d'utiliser ec2-user.

J'ai essayé d'utiliser ec2-user et j'ai pu me connecter. Cependant, je n'avais toujours pas accès root et je n'ai pas pu installer Apache. J'ai fait une raison et j'ai découvert la commande "Sudo", et à peu près chaque article que j'ai lu sur ce problème disait d'utiliser soit l'accès root, soit de se connecter à ec2-user et à l'utilisateur Sudo.

J'ai depuis essayé à nouveau avec une autre AMI où LAMP était déjà installé. J'ai pu le faire fonctionner, créer une base de données et commencer à gérer un site Web à partir de celui-ci. Cependant, j'avais encore besoin d'installer certaines extensions. À savoir, une API que j'essaie d'utiliser pour cette application nécessite l'installation de SOAP.

Voici mon dilemme:

/$ whereis soap
soap:
/$ whereis yum
yum: /usr/bin/yum /etc/yum /etc/yum.conf /usr/share/man/man8/yum.8.gz
/$ yum install php-soap
Loaded plugins: fastestmirror, priorities, security
You need to be root to perform this command.
/$ Sudo yum install php-soap
Sudo: sorry, you must have a tty to run Sudo

Command 'Sudo yum install php-soap' failed with return code 1 and error message Sudo: sorry, you must have a tty to run Sudo

Je ne peux pas utiliser yum parce que je n'ai pas d'accès root, et chaque fois que je me connecte à root, il me dit d'utiliser ec2-user ou de fournir un mot de passe que je n'ai pas. L'autre alternative était d'utiliser Sudo pour que l'utilisateur ec2 agisse comme root, mais je reçois toujours l'erreur 'désolé, vous devez avoir un tty pour exécuter Sudo.' J'ai lancé ce message d'erreur en ligne et il semble que je doive ajouter un utilisateur aux sudoers ... ce que je ne peux pas faire sans accès root.

Ce même problème me tourmentait sur deux AMI distinctes. Le premier, je viens de recevoir un message disant que je devais me connecter en tant qu'utilisateur ec2 (et je dois avoir un tty pour exécuter Sudo), tandis que le second (avec LAMP installé) m'obligeait à entrer un mot de passe pour root et pour l'utilisateur J'ai la même erreur Sudo.

Voici les identifiants des AMI que j'ai utilisés:

AMI-8c1fece5
AMI-6ae81503

J'ai également essayé un troisième AMI plus tard qui avait également installé LAMP ... Je ne pouvais même pas y entrer du tout.

J'ai téléchargé ma clé SSH et utilisé PuttyGen pour la convertir en un fichier ppk. Je peux me connecter avec succès en tant qu'utilisateur ec2, mais je ne peux accéder à la racine nulle part.

J'ai cherché un peu d'aide pour cela, mais chaque article que j'ai lu suppose que l'utilisateur dispose soit d'un accès root, soit de Sudo sur ec2-user. Moi non plus. Est-ce juste que j'ai besoin d'une nouvelle image?

Toute aide serait grandement appréciée ...

28
JaidynReiman

Utilisez un vrai client SSH comme PuTTY , pas WinSCP, un client de transfert de fichiers. Tous vos problèmes disparaîtront.

5
Dan Grossman

J'ai juste essayé

$ Sudo su

sur l'un de vos amis et le tour est joué! Je suis root ...

S'amuser!

[ec2-user@ip-10-244-146-238 ~]$ Sudo su
[root@ip-10-244-146-238 ec2-user]# 
61
Alex Gitelman

Pour Debian ou Ubuntu EC2:

  1. Définissez le mot de passe root via PuTTY:

    Sudo passwd root
    
  2. Connectez-vous à PuTTY en tant que root

    ubuntu@aws1:~$ su
    Password:
    
  3. Modifiez votre fichier/etc/ssh/sshd_config et commentez la dernière instruction HostKey ou similaire à la dernière dans l'exemple ci-dessous:

    vi /etc/ssh/sshd_config
    

Ensuite

    # HostKeys for protocol version 2
    HostKey /etc/ssh/ssh_Host_rsa_key
    HostKey /etc/ssh/ssh_Host_dsa_key
    HostKey /etc/ssh/ssh_Host_ecdsa_key
    #HostKey /etc/ssh/ssh_Host_ed00000_key
  1. Dans le même fichier, modifiez ce qui suit pour ressembler à ci-dessous:

    PermitRootLogin yes
    #PasswordAuthentication no
    
  2. Redémarrez ssh

    service ssh restart
    
  3. Connectez-vous en tant que root avec le mot de passe de WinSCP

* Je recommande de créer une sauvegarde du fichier sshd_config avant de le modifier, puis de revenir à l'original une fois terminé.

4
Thaddeus

Vous devez modifier le fichier sshd_config pour autoriser l'accès par mot de passe. Vous devez également ajouter un mot de passe à votre utilisateur root. Suivez simplement les étapes - Sudo passwd root Sudo nano -w/etc/ssh/sshd_config Décommentez/Ajoutez la ligne suivante PasswordAuthentication yes

1
Mad Scientist

(Rapport de bogue?) Ceci est mon journal sur une instance d'ec2, parfois Sudo su ne fonctionne pas. Je dois me déconnecter et ssh à nouveau pour le faire fonctionner.

    [ec2-user@ip-XXXX ~]$ su root
    Password:
    su: incorrect password
    [ec2-user@ip-XXXX ~]$ exit
    logout
    Connection to ec2-50XXXX.compute-1.amazonaws.com closed.
    ssh -i automata.pem [email protected]
    whereis yum
    yum: /usr/bin/yum /etc/yum.conf /etc/yum /usr/share/man/man8/yum.8.gz
    [ec2-user@ip-XXXX ~]$ Sudo su
    [root@ip-XXXX ec2-user]#
1
HoofarLotusX

Le fichier:

/ etc/sudoers

a une ligne

Valeurs par défaut requises

Le commenter fera probablement disparaître l'erreur.

J'essaierais d'abord de comprendre pourquoi quelque chose dans votre commande yum n'a plus de tty.

La modification d'un fichier lié à la sécurité comme/etc/sudoers est potentiellement dangereuse et silencieuse.

1
anw