Question comme titre. Pourquoi est-ce, j'ai utilisé la commande ssh: ssh -i mykey.pem [email protected] Mais je reçois cette erreur, ne trouve rien sur google. Qu'est-ce que je fais mal?
Vous vous connectez en tant que ec2-user
comme l'a suggéré Klaus:
ssh -i key.pem ec2-user@Host
... puis vous utilisez Sudo
pour exécuter les commandes. Par exemple, pour modifier le /etc/hosts
fichier appartenant à root et nécessitant des privilèges root: Sudo nano /etc/hosts
.
Ou vous exécutez Sudo su
pour devenir l'utilisateur root
.
Par défaut, root
l'utilisateur n'est pas autorisé à se connecter, mais vous pouvez utiliser ec2-user
comme indiqué par d'autres.
Une fois connecté avec ec2-user
vous passez à root
et changez la configuration SSH.
Pour devenir l'utilisateur root que vous exécutez:
Sudo su -
Modifiez le fichier de configuration du démon SSH /etc/ssh/sshd_config
, par exemple. en utilisant vi, et remplacez l'entrée PermitRootLogin
par ce qui suit:
PermitRootLogin without-password
Rechargez la configuration du démon SSH en exécutant:
/etc/init.d/sshd reload
Le message Please login as the ec2-user user rather than root user.
s'affiche car une commande est exécutée lorsque vous vous connectez avec la clé privée. Pour supprimer cette commande, éditez ~/.ssh/authorized_keys
fichier et supprimez l'option command
. La ligne doit commencer par le type de clé (par exemple, ssh-rsa).
(*) Faites à vos risques et périls. Je vous recommande de laisser toujours une console ouverte au cas où vous ne pourriez pas vous connecter après avoir effectué les modifications de configuration.
Pour référence, vous pouvez lire les pages de manuel:
man sshd_config
man sshd
J'ai rencontré un problème similaire lors de la configuration d'un cluster hadoop sur Amazon ec2.
Mon nœud principal doit avoir un accès root ssh à chaque nœud travailleur/esclave. J'ai alias les connexions en ajoutant l'adresse IP, l'adresse privée et le nom d'alias de chaque nœud esclave au /etc/hosts/
fichier. (J'obtiens ces données en exécutant la commande echo -e "`hostname -i`\t`hostname -f`\talias-name"
où alias-name
est ce que j'appelle chaque nœud (head
ou n1
par exemple). Ensuite, je mets cette sortie pour chaque nœud dans le /etc/hosts
fichier.
Le problème que j'ai rencontré est que lorsque je tape ssh n1 dans mon nœud principal pour ssh dans mon premier nœud esclave, j'obtiens le même message d'erreur: Please login as the use "ec2-user" rather than the user "root".
Donc, après avoir fait quelques recherches, j'ai compris comment y remédier.
D'abord:
su -
votre chemin vers root. À présent vi /etc/ssh/sshd_config
et commentez la ligne PermitRootLogin yes
.service sshd stop
puis service sshd start
.Deuxième:
vi /root/.ssh/authorized_keys
ssh-rsa.
Il suffit de mettre un #
au début du contenu du fichier, avant no-port-forwarding
... et appuyez sur Entrée sur ssh-rsa
pour le déplacer vers la ligne suivante (de cette façon, vous n'avez rien à supprimer au cas où vous voudriez revenir en arrière).Vous devriez maintenant pouvoir vous connecter à root sans que ce message d'erreur n'apparaisse.
En outre, si vous utilisez des alias pour une configuration de cluster; Répétez les mêmes étapes sur chaque nœud. Commencez par utiliser ssh ec2-user puis suivez les étapes. Après avoir ajouté l'adresse IP, l'adresse privée et le nom d'alias à votre /etc/hosts
fichier, vous devriez pouvoir ssh dans la racine de chaque nœud en utilisant le nom d'alias par exemple ssh n1
.
Le tutoriel que j'ai suivi est ici: https://www.youtube.com/watch?v=xrxQXfE7t9A
Mais il n'a pas discuté du problème avec la connexion root.
J'espère que ça t'as aidé! Ça a marché pour moi.
* Gardez à l'esprit que je n'ai pris aucune sécurité en considération. Il s'agit simplement d'une configuration pratique/dev.
Je pense que cela vous demande simplement de vous connecter avec un autre nom d'utilisateur. Avez-vous un utilisateur appelé ec2-user
? Si oui, essayez ceci à la place:
ssh -i mykey.pem [email protected]
Résolu! Essayez de comparer le fichier de clé racine et le fichier de clé utilisateur)
diff /root/.ssh/authorized_keys /home/user/.ssh/authorized_keys
... et voyez
J'ai rencontré le même problème lorsque j'ai essayé d'accéder à mon instance EC2 en tant que "root" via le client Windows PuTTY, c'est ainsi que j'ai résolu le problème.
Accédez au fichier de configuration SSH et modifiez-le pour autoriser la connexion root et l'authentification par mot de passe.
Entrez la commande ci-dessous pour ouvrir la configuration ssh
Sudo vi /etc/ssh/sshd_config
Modifiez le fichier de configuration SSH comme ci-dessous en utilisant vi, comment utiliser l'éditeur vi
PermitRootLogin yes (supprimer # à la mendicité s'il est présent)
PasswordAuthentication yes
Redémarrez SSH
Sudo /etc/init.d/sshd restart
Modifier/définir le mot de passe root
Sudo passwd root
saisissez un nouveau mot de passe et saisissez-le à nouveau (au moins 8 caractères)
Quitter la session en cours et fermer PuTTY
exit
Modifiez/etc/ssh/sshd_config et assurez-vous que cela est défini:
PasswordAuthentication yes
Rechargez ensuite SSH:
systemctl reload sshd.service
Vous pouvez maintenant vous connecter en tant qu'utilisateurs autres que ec2-user.