Amazon EC2 - Pas de SSH après le redémarrage, connexion refusée

17

J'ai reproduit cela deux ou trois fois, donc je suppose qu'il y a quelque chose qui ne va pas dans ce que je fais.

Voici mes étapes:

  1. Lancez une nouvelle instance via la console de gestion EC2 en utilisant: Ubuntu Server 13.10 - ami-ace67f9c (64 bits)
  2. Lancer avec des valeurs par défaut (en utilisant ma paire de clés existante)
  3. L'instance démarre. Je peux le SSH en utilisant Putty ou le terminal Mac. Succès!
  4. Je redémarre l'instance
  5. 10 minutes plus tard, lorsque l'instance doit être de nouveau opérationnelle, ma connexion au terminal affiche:

    stead:~ stead$ ssh -v -i Dropbox/SteadCloud3.pem [email protected]
    OpenSSH_5.6p1, Op`enSSL 0.9.8y 5 Feb 2013
    debug1: Reading configuration data /etc/ssh_config
    debug1: Applying options for *
    debug1: Connecting to 54.201.200.208 [54.201.200.208] port 22.
    debug1: connect to address 54.201.200.208 port 22: Connection refused
    ssh: connect to host 54.201.200.208 port 22: Connection refused
    stead:~ stead$
    

Très bien, je comprends que l'adresse IP publique peut changer, donc en vérifiant la console de gestion EC2, je vérifie que c'est la même chose. Bizarre. Juste pour le plaisir, j'essaie de me connecter avec le nom d'hôte DNS public: ec2-54-201-200-208.us-west-2.compute.amazonaws.com. Pas de dés, même résultat.

Même en utilisant le client Connect via Java SSH intégré à la console EC2, je reçois une connexion refusée.

J'ai vérifié les groupes de sécurité. Cette instance se trouve dans le groupe launch-wizard-4. En regardant la configuration entrante pour ce groupe, le port 22 est autorisé à partir de 0.0.0.0/0, donc cela devrait être n'importe où. Je sais que je frappe mon instance et c'est le bon groupe de sécurité, car je ne peux pas cingler l'instance. Si j'active ICMP pour ce groupe de sécurité, tout à coup mes pings passent.

J'ai trouvé quelques autres messages sur Internet avec des messages d'erreur similaires, mais la plupart semblent être facilement résolus en ajustant les paramètres du pare-feu. J'en ai essayé quelques-uns, sans succès.

Je suppose qu'il me manque une étape EC2 simple. Merci pour toute aide que vous pouvez apporter, et je suis heureux de vous fournir plus d'informations ou de tester plus avant!

Mise à jour - Voici mes journaux système depuis la console Amazon EC2: http://pastebin.com/4M5pwGRt

SteadH
la source
2
Je suggérerais de regarder dans les journaux système sur la console AWS pour voir si cela dit que quelque chose ne s'est pas bien passé lors du redémarrage, vous voudrez peut-être vous assurer que les deux vérifications d'accessibilité réussissent lorsque le système redémarre et lorsque vous essayez de ssh (sur la console seulement)
APZ
2
Vous n'avez rien fait après la première connexion? Pas de problème avec les tables IP ou les fichiers de configuration sshd? Parce qu'il semble que vous perdiez la connexion, ce n'est pas que le port 22 n'est pas disponible.
typositoire
Avez-vous joué avec /etc/fstabavant de redémarrer?
David Levesque
Aucun changement d'iptables ou de fstab avant le redémarrage. La première commande que j'ai exécutée était "redémarrer maintenant". Je mettrai à jour ci-dessus avec mes journaux système AWS
SteadH
De plus, les vérifications d'état sont toutes les deux bonnes - 2/2! J'espérais que j'avais quelque chose de simple à faire avec ma configuration ... peut-être pas!
SteadH

Réponses:

6

J'ai eu un comportement similaire aujourd'hui sur mon instance ec2, et j'ai trouvé la chose à cela: quand je fais, sudo reboot now la machine se bloque et je dois la redémarrer manuellement à partir de la console de gestion aws lorsque je la sudo reboot redémarre très bien. Apparemment, "maintenant" n'est pas une option valide pour le redémarrage comme indiqué ici /ubuntu/397502/reboot-a-server-from-command-line

pensées?

oromoiluig
la source
Impressionnant! J'ai essayé cela sur mon instance aujourd'hui et cela a fonctionné. Je vous remercie!
SteadH
En outre, ce lien est amusant car j'ai toujours utilisé sudo reboot comme méthode de redémarrage d'Ubuntu Server. Étrange!
SteadH
@oromoiluig comment on peut redémarrer, sinon pouvoir ssh la machine?
Vaibhav Kumar
1
@VaibhavKumar à partir de la console AWS: désactivez et réactivez l'instance.
oromoiluig
17

Extrait du post du Forum des développeurs AWS sur ce sujet :

Essayez d'arrêter l'instance rompue, de détacher le volume EBS et de le joindre en tant que volume secondaire à une autre instance. Une fois que vous avez monté le volume cassé quelque part sur l'autre instance, vérifiez le fichier / etc / sshd_config (près du bas). J'ai eu quelques instances RHEL où Yum a fait scroger le sshd_config en insérant des lignes en double en bas qui a causé l'échec de sshd au démarrage à cause d'erreurs de syntaxe.

Une fois que vous l'avez corrigé, démontez simplement le volume, détachez-le, rattachez-le à votre autre instance et redémarrez-le.

Décomposons cela, avec des liens vers la documentation AWS:

  1. Arrêtez l'instance cassée et détachez le volume EBS (racine) en allant dans la console de gestion EC2, en cliquant sur "Elastic Block Store"> "Volumes", le clic droit sur le volume associé à l'instance que vous avez arrêtée.
  2. Démarrez une nouvelle instance dans la même région et du même système d'exploitation que l'instance cassée, puis attachez le volume racine EBS d'origine en tant que volume secondaire à votre nouvelle instance . Les commandes de l'étape 4 ci-dessous supposent que vous montez le volume dans un dossier appelé "données".
  3. Une fois que vous avez monté le volume cassé quelque part sur l'autre instance ,
  4. vérifiez le fichier "/ etc / sshd_config" pour les entrées en double en émettant ces commandes:
    • cd /etc/ssh
    • sudo nano sshd_config
    • ctrl-v un tas de fois pour aller au bas du fichier
    • ctrl-k toutes les lignes en bas mentionnant "PermitRootLogin without-password" et "UseDNS no"
    • ctrl-xet Ypour enregistrer et quitter le fichier modifié
  5. @Telegard souligne (dans son commentaire) que nous n'avons résolu que le symptôme. Nous pouvons corriger la cause en commentant les 3 lignes associées dans le fichier "/etc/rc.local". Donc:
    • cd /etc
    • sudo nano rc.local
    • recherchez les lignes "PermitRootLogin ..." et supprimez-les
    • ctrl-xet Ypour enregistrer et quitter le fichier modifié
  6. Une fois que vous l'avez corrigé, démontez simplement le volume ,
  7. se détacher en allant dans la console de gestion EC2, en cliquant sur "Elastic Block Store"> "Volumes", le clic droit sur le volume associé à l'instance que vous avez arrêtée,
  8. rattacher à votre autre instance et
  9. tirez-le à nouveau .
Jeromy French
la source
Cette question pourrait également être pertinente: serverfault.com/q/325140/153062
Jeromy French
Même problème et correction proposée similaire sur stackoverflow.com/a/21563478/1430996 Le commentaire est particulièrement utile.
Jeromy French
Merci pour cela! Je soupçonne que cela aurait résolu le problème, et c'est un bon moyen d'accéder à ce journal SSH. Merci!
SteadH
Cela a fonctionné, merci. Bien que mon problème (même symptôme: "connexion refusée") soit dû à une mauvaise propriété du répertoire / var / empty / sshd. Il aurait dû être root: root. Pourquoi cela a-t-il changé: aucune idée, nous ne l'avons même jamais fermé. Tant pis.
cucu8
@JeromyFrench J'ai le même problème. J'ai suivi la procédure mais je n'ai pas obtenu le "" PermitRootLogin sans mot de passe "". Il a "PermitRootLogin = mot-de-passe-interdit". Que devrais-je faire?
Vaibhav Kumar
0

Cela n'aidera peut-être pas la situation, mais j'ai vu certains cas où un redémarrage sur EC2 est «bloqué». Si vous effectuez une «réinitialisation» sur la machine virtuelle, puis récupérez les journaux système, cela peut changer le comportement. Assurez-vous que les journaux proviennent du deuxième démarrage et non du premier - ils ont tendance à être retardés lors des mises à jour.

Une autre chose à vérifier est de s'assurer que l'instance répond sur l'IP. Vous semblez obtenir une connexion refusée ci-dessus, ce qui semble être une instance, mais SSH ne fonctionne pas ou est protégé par un pare-feu, mais assurez-vous que l'instance a complètement redémarré.

Vous pouvez également essayer d'ouvrir tous les ports à partir d'un système de test et voir ce que «nmap» vous montre - d'autres services répondent-ils sur l'instance?

Nathan Neulinger
la source
-1

Faites un clic droit sur le nom de l'instance et cliquez sur "Modifier les groupes de sécurité". Assurez-vous que le groupe de sécurité que vous avez créé qui permet à quiconque de n'importe où vers le port 22 est vérifié et appliqué à cette instance.

shaimoom
la source
-2

J'ai eu ce problème après l'avoir fait sudo reboot nowvia SSH sur mon serveur EC2 exécutant Ubuntu 14.04. A bien fonctionné après avoir redémarré à nouveau à l'aide de la console de gestion EC2.

Kris Khaira
la source
-2

Dans mon cas, je mettrais en place un groupe de sécurité pour autoriser les connexions du port 22 à partir de mon IP uniquement. Quelques jours plus tard, mon FAI a changé mon adresse IP, le groupe de sécurité doit donc être mis à jour.

redcalx
la source
-2

J'ai eu un problème similaire, mon instance EC2 Amazon Linux n'était plus accessible après l'exécution du redémarrage de sudo .

Aucun accès SSH, les commandes d'arrêt / démarrage / redémarrage de la console d'administration Amazon ne m'ont donné aucun résultat également.

J'ai enfin pu redémarrer mon instance en créant une image via la console Amazon. Le processus de création d'image semble fixer l'état de l'instance.

J'espère que cela aide ;)

Romain Pellerin-Rezzi
la source
-2

J'ai eu le même problème après avoir exécuté une sudo rebootcommande vanilla . J'ai découvert que j'étais en mesure de résoudre le problème en arrêtant complètement (pas en redémarrant) mon AMI à l'aide de la console AWS, puis en la redémarrant.

Pour une raison quelconque, le redémarrage de l'AMI à partir de la console AWS, comme en cliquant sur l'action de redémarrage au lieu d'arrêter puis de démarrer l'instance, n'a pas résolu le problème.

ACV
la source
-3

Comme mentionné, vous avez probablement foiré le fichier / etc / fstab /

J'ai eu ce problème. Vous devez d'abord ajouter à nouveau le volume dans / dev / sda1 comme le dit le message d'avertissement.

Ensuite, je ne pouvais pas chier. J'ai réalisé que je devais ajouter l'autre volume que j'avais créé et qui corrigeait le problème ssh.

Ensuite, vous pouvez vous connecter et réparer le fstab sur l'original.

user3555158
la source
Pas d'édition fsab, juste une commande de redémarrage.
SteadH