Zum Inhalt springen

Zugriff auf Ihre VM wiederherstellen

Falls Sie Ihren SSH-Schlüssel und Ihr Passwort verlieren, haben Sie immer noch die Möglichkeit, Ihre VM wiederherzustellen.

Linux-Betriebssystem: Die Schritte in dieser Anleitung beziehen sich auf das Betriebssystem CentOS und sollten auf jedem anderen auf Red Hat Enterprise Linux basierenden System funktionieren. Für andere Linux-Derivate sollte die Beschreibung ebenfalls funktionieren, allerdings müssen einige Schritte angepasst werden. Beispiele: Jede Linux-Distribution verwendet einen anderen Standard-Benutzernamen und der Name des SSH-Daemons unterscheidet sich bei EL- und Debian-Derivaten.

Starten Sie Ihre VM über die Web-Konsole neu. Cloud platform VM management interface showing VM-1 server details: Online status, del-1 location, 20 GB storage, 512 MB RAM, 1 CPU, CentOS 7 (deprecated), IP address 4.159.97.5, and monthly cost of 10.00 €. A dropdown menu displays management options including Start, Stop, Reboot (highlighted with cursor), Web console, and Delete.

Rufen Sie das Portal auf und öffnen Sie die Web-Konsole. Cloud platform VM management interface for VM-1 showing server specifications: Online status, del-1 location, 20 GB storage, 512 MB RAM, 1 CPU, CentOS 7 (deprecated), IP address 4.159.97.5, and 10.00 € monthly cost. A dropdown menu displays options with ‘Web console’ highlighted by cursor hover, along with Start, Stop, Reboot, and Delete options.

Sie werden sehen, wie Ihre VM bootet; drücken Sie die Schaltfläche Send CtrlAltDel in der oberen rechten Ecke. QEMU console connection window for instance-000a306a with encrypted connection status. The window shows a ‘Send CtrlAltDel’ button in the top-right corner for sending the Ctrl+Alt+Delete key combination to the virtual machine.

Drücken Sie die Pfeiltasten, um das Timeout des Grub-Menüs zu stoppen – es ist ziemlich kurz. Wenn Sie den Moment verpassen, drücken Sie einfach erneut Send CtrlAltDel. Sie sollten etwa Folgendes sehen:

Drücken Sie Auf und Ab.

Wählen Sie den neuesten (obersten) Menüeintrag aus.

GRUB bootloader initial boot screen for CentOS 7 Core kernel 3.10.0-1127.el7.x86_64 on x86_64 architecture. The terminal shows the login prompt ‘vm-1-fq4tx8z0 login:’ with a blinking cursor, awaiting user input.

Bearbeiten Sie nun Ihr Menü (drücken Sie die Taste e auf der Tastatur), um das Menü bearbeiten zu können.

Sie werden etwas Ähnliches wie dies sehen: GRUB bootloader menu showing CentOS Linux kernel selection with boot parameters including load_video, set gfxpayload=keep, insmod commands, and root device configuration. The entry displays kernel version 3.10.0-1127.el7.x86_64 with platform search hints and root device UUID options.

Scrollen Sie nun nach unten (verwenden Sie die Pfeiltasten) bis zu der Zeile, die mit initrd16 beginnt. GRUB bootloader configuration showing detailed boot commands for CentOS 7 with kernel 3.10.0-1127.el7.x86_64. The screen displays insmod commands for partition and filesystem modules, root device settings, linux16 boot command with root UUID, console settings, crash kernel parameters, and initrd16 initramfs loading command.

Drücken Sie die linke Pfeiltaste, um in die vorherige Zeile zu “springen”, um diese zu bearbeiten. Sie müssen einige Änderungen vornehmen:

  • Entfernen Sie console=ttyS0, console=tty0, console=ttyS0,115200n8.
  • Fügen Sie nun am Ende der Zeile Folgendes hinzu: rd.break enforcing=0.

GRUB bootloader boot sequence showing kernel loading process for CentOS 7 with vmlinuz-3.10.0-1127.el7.x86_64. The screen displays insmod commands, linux16 boot command with root UUID 6cd50e51-cfc6-40b9-9ec5-f32fa2e4ff02, crash kernel configuration, network interface settings, and initrd16 initramfs-3.10.0-1127.el7.x86_64.img loading.

Halten Sie nun die Strg-Taste auf der Tastatur gedrückt und drücken Sie x. Das System beginnt zu booten und erreicht einen Zustand ähnlich wie: CentOS 7 rescue mode terminal showing system initialization progress with green ‘OK’ status indicators. The screen displays filesystem mounting (XFS on /dev/vda1), random initialization, systemd target mounting, reload configuration steps, and initrd file systems setup. A dracut warning appears about break before switch_root. The emergency shell is available with instructions to type ‘journalctl’ for logs and save ‘/run/initramfs/rdsosreport.txt’ for bug reports. The prompt shows ‘switch_root:/#’ indicating emergency mode.

Geben Sie nun Folgendes in Ihre Konsole ein (Kopieren und Einfügen funktioniert nicht):

Terminal-Fenster
mount –o remount,rw /sysroot chroot /sysroot passwd root

Ändern Sie das Root-Passwort, das wir zum Anmelden verwenden werden.

Wir werden das Root-Passwort später aus Sicherheitsgründen erneut ändern!

Terminal session showing password change process for root user using ‘passwd root’ command. The output displays ‘Changing password for user root’, followed by prompts for ‘New password’ and ‘Retype new password’. A BAD PASSWORD warning indicates ‘The password is shorter than 8 characters’, and the final line confirms ‘passwd: all authentication tokens updated successfully.’ The shell prompt shows ‘sh-4.2#’.

Geben Sie nun zweimal “exit” ein. Dies ermöglicht es dem System, den Hochfahrzyklus abzuschließen, und Sie erhalten eine Anmeldeaufforderung:

Web console user authentication form requiring initial password change for Windows images. The form includes username field, new password and repeat password fields with requirements (minimum 15 characters, 1 special character, 1 number, 1 capital letter), and Save/Discard buttons. A warning advises avoiding special characters #, +, =, ¶ due to web console keyboard layout complications.

Geben Sie “root” als Benutzer und das Passwort ein, das Sie in Schritt 10 verwendet haben.

CentOS 7 terminal showing successful root login with kernel version 3.10.0-1127.el7.x86_64 on x86_64 architecture. The screen displays the login prompt ‘vm-1-fq4tx8z0’ and root shell prompt after successful authentication.

Ändern Sie nun das Passwort für den Standard-Distributions-/Login-Benutzer. Für die CentOS-Distro ist der Standardbenutzer “centos”.

Geben Sie das Passwort zweimal ein:

Terminal-Fenster
passwd centos

CentOS 7 terminal showing password change procedure for centos user. The session displays kernel version 3.10.0-1127.el7.x86_64, hostname ‘vm-1-fq4tx8z0’, and successful login as root. The command ‘passwd centos’ is executed with output showing ‘Changing password for user centos’, password prompts, a BAD PASSWORD warning about password length (shorter than 8 characters), and confirmation message ‘passwd: all authentication tokens updated successfully.’ The root prompt ‘root@vm-1-fq4tx8z0 ~#’ is displayed.

Nun müssen Sie vorübergehend die Anmeldung per Passwort erlauben. Wir werden dies zu einem späteren Zeitpunkt wieder ändern. Öffnen Sie /etc/ssh/sshd_config.

Terminal-Fenster
vi /etc/ssh/sshd\_config

Suchen Sie die Zeile, die wie folgt aussieht:

#PasswordAuthentication yes

Sobald sich der Cursor auf dem # -Zeichen befindet, drücken Sie x, um dieses Zeichen zu löschen. Drücken Sie dann die folgende Tastenfolge: Esc, :, w, q and Enter.
Diese Sequenz speichert Ihre Änderungen.

Terminal-Fenster
sshd -t

Terminal session showing failed SSH daemon configuration test. The command ‘sshd -t’ produces error output: ‘/etc/ssh/sshd_config: line 132: Bad configuration option: 1PasswordAuthentication’ followed by ‘/etc/ssh/sshd_config: terminating, 1 bad configuration options’. The root prompt ‘root@vm-1-fq4tx8z0 ~#’ is shown, indicating a typo in the SSH configuration file where ‘1PasswordAuthentication’ should be ‘PasswordAuthentication’.

Eine gute Ausgabe sollte so aussehen: Terminal session showing successful SSH daemon configuration test with command ‘sshd -t’ executed at root prompt. The command completes without errors, returning to the root prompt ‘root@vm-1-fq4tx8z0 ~#’, indicating valid SSH configuration.

Starten Sie den sshd-Daemon neu. Dieser Daemon steuert den Fernzugriff auf den Linux-Server.

Terminal-Fenster
systemctl restart sshd

Auf EL-basierten Systemen (wie CentOS) heißt der Daemon “sshd”, während er auf Debian und Derivaten “ssh” genannt wird.

Nun sollten Sie in der Lage sein, sich per SSH mit Ihrem Passwort anzumelden. Verwenden Sie das von Ihnen erstellte Passwort:

Terminal-Fenster
ssh centos@4.159.97.5 Warning: Permanently added '4.159.97.5' (ECDSA) to the list of known hosts. centos@4.159.97.5's password: X11 forwarding request failed on channel 0 Last login: Thu May 21 09:15:14 2020 from 4.159.97.30 [centos@vm-1-fq4tx0z0 \~]$

Bearbeiten Sie Ihre authorized_keys, um Ihren neuen SSH-Key zuzulassen.

Terminal-Fenster
echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDMbC29mO0j9NnjTt/eSNQuwX0XPcFT77Fg20wUKCHFyJrC+yldMja8EEEo+LY2HRgu5mzDHdKG9nHW2yGtPt1kUfz6Icck/Of5uT5G9139IKdDd1VxdqDOKKQq6e+3cbtLe0JvAdEG/B7M0nIkpguVX2T2Lojsi7xF3sHjrg7vjYeFWmoBjWl7tilgu0eXTHFdmKvCJ05qjgU5OwXitE8YtxKd/iifs0YACan3PCFX4P4vAe/oBjmaIW2qCLaBTEI2COMl6/EVaIhiudplTFJV4ebbbidwhXkGWj8o0mMEv7umgIsU3Fv4UoUQ0fU7ZxqReApIBGLtKL6rG7NntTD6r6ROrh5VXfJfWRXQgBh+S/Ei9gvRBeu0qzqEiSIyIWT14+RsXjDuGBRch2GZmGjres7XEqtCRvpnDJ6A1gS8NFeHr9GcATUbBhS45iFCuDTvFfNgI7ydyOfWlB+/D8fvrfgXH7k1r5291oiNonVTmYkF3sDVWGmRvFoyZcSqBxftok4TCD9vEmqg7Uqa0eAkYIxyxffNmzUgY3UrxRLD+IyUFAoaXKMtkuxE5KrrBYSweIOa5pCvbJOjX/yP7R5SumvEOEJMSiu0bdd5UsP6ed8omax6FWcp3g+P4PMRMbaM/aMowAE+02TizdJ+PDfWD1+f6W4XMZHHyfwsfTeLKw== someuser@MYPC' >> \~/.ssh/authorized\_keys

Überprüfen Sie den Zugriff per Schlüssel. Die Anmeldung sollte ohne Passwort erfolgen.

Machen Sie Ihre Änderungen in der sshd-Konfigurationsdatei rückgängig. Da wir nun in der Shell (nicht in der Web-Konsole) Kopieren / Einfügen können, können Sie Folgendes ausführen:

Terminal-Fenster
sudo sed -i 's/PasswordAuthentication yes/#PasswordAuthentication no/' /etc/ssh/sshd\_config

Überprüfen Sie Ihre Änderungen erneut und starten Sie sshd neu, falls keine Fehler erkannt werden:

Terminal-Fenster
sshd -t systemctl restart sshd

SELINUX reparieren (CentOS und Derivate):

Terminal-Fenster
touch /.autorelabel restorecon -RFvv /etc/shadow restorecon -RFvv /etc/ssh/sshd\_config setenforce 1

Setzen Sie nun die Passwörter der Benutzer auf einen Zufallswert:

Terminal-Fenster
cat /dev/urandom | tr -dc 'A-Za-z0-9!"#$%&'\\''()*+,-./:;<=>?@[\\]^\_`{|}\~' | head -c 25 | passwd --stdin root cat /dev/urandom | tr -dc 'A-Za-z0-9!"#$%&'\\''()*+,-./:;<=>?@[\\]^\_`{|}\~' | head -c 25 | passwd --stdin centos

Neustart (optional).

Terminal-Fenster
reboot