Ich habe SSH durch die Verwendung von chmod auf einer EC2-Instance beschädigt. Wie kann ich das beheben?

Ich habe SSH durch die Verwendung von chmod auf einer EC2-Instance beschädigt. Wie kann ich das beheben?

Ich betreibe seit einiger Zeit eine Amazon EC2-Instanz und habe vor Kurzem versehentlich rekursiv die Berechtigungen/Eigentümerschaft für Ordner geändert. Ich kann mich nicht mehr per SSH mit der Instanz verbinden. Ich erinnere mich nicht mehr an den genauen Befehl. Ich habe dann mithilfe der in der Antwort auf diese Frage beschriebenen Technik den Basiszugriff wiedererlangt:https://serverfault.com/questions/234061/re-gaining-root-access-to-an-ec2-ebs-boot-image

Ich weiß allerdings nicht, was ich mit Schritt 3 („Ändern“) tun soll. Ich weiß nicht, was ich ändern soll, und bei meinen Versuchen, die richtigen Berechtigungen festzulegen, habe ich auch den Zugriff auf eine Reihe von EC2-Wiederherstellungsinstanzen verloren!

Zur Referenz: Ich verwende Win7 und Putty/WinSCP, um eine Verbindung zur Instanz herzustellen. Putty zeigt die folgenden 2 Fehler an, wenn ich versuche, mich über SSH bei der Instanz anzumelden:

Der Server hat unseren Schlüssel abgelehnt

Keine unterstützten Authentifizierungsmethoden verfügbar (vom Server gesendet: öffentlicher Schlüssel)

Ich bin sicher, dass ich für meine Instanz den richtigen Benutzernamen, die richtige IP-Adresse und den richtigen privaten Schlüssel verwende.

Ich wäre für jede Hilfe sehr dankbar.

Antwort1

Die Lösung,wie im Server Fault-Beitrag beschriebenbesteht darin, Ihr EBS an eine andere (neue) Instanz anzuhängen, mit der Sie eine Verbindung herstellen können. Das EBS ist dort nur ein Laufwerk und Sie können eine Remote-Verbindung zur Instanz herstellen, da sie neu ist. Sie können dann sudo chowndie Verzeichnisse verwenden, die Sie zuerst beschädigt haben.

  1. Stoppen Sie (NICHT beenden) Ihre erste Instanz über die AWS-Konsole.

  2. Erstellen Sie eine neue Linux-Instanz über die AWS-Konsole

  3. Trennen Sie das EBS von der ersten Instanz und hängen Sie es erneut an die neue Instanz an.von der AWS-Konsole. Geben Sie ihm den Namen: /dev/sdm (Auf der EBS-Konsole sehen Sie, dass das angeschlossene Volume „sdm“ heißt, unter Linux aber auf „xvdm“ abgebildet ist, sodass es mit den folgenden Befehlen übereinstimmt. Sie können aber gerne einen anderen Buchstaben verwenden und die nächsten Befehle anpassen.)

  4. Stellen Sie per SSH eine Verbindung zur neuen Instanz her und führen Sie Folgendes aus:

    sudo mkfs -t ext4 /dev/xvdm
    sudo mkdir /old-ebs
    # optional, in case this is a bit more permanent
    sudo echo "/dev/xvdm        /old-ebs     auto    noatime,noexec,nodiratime 0 0" >> /etc/fstab
    sudo mount /dev/xvdm /old-ebs
    
  5. Jetzt hast du (sudo) Zugriff auf dein altes EBS und kannst chowndas gewünschte Verzeichnis aufrufen. Ein Tipp, falls du nicht weiterkommst: Kopiere die Rechte von der neuen Instanz.

  6. Wenn Sie fertig sind, können Sie die neue Instanz stoppen, Ihr EBS davon trennen, es erneut an die erste Instanz anhängen und es dann starten.

Der dritte Konsolenbefehl oben, um das gemountete Volume hinzuzufügen, /etc/fstabsodass es bei jedem Neustart automatisch gemountet wird, ist optional.

verwandte Informationen