Vor einem Lifeline-Einsatz müssen auf Ihrem VPS zwei Bedingungen erfüllt sein: Der QEMU-Agent muss aktiv sein und unser öffentlicher SSH-Schlüssel muss installiert sein. Diese Vorbereitung ermöglicht es unseren Administratoren, auf den Server zuzugreifen, wenn Sie sie um einen Einsatz bitten.

Zwei Methoden stehen zur Verfügung:

  • Automatische Methode (empfohlen): Ein Skript prüft und bereitet alles mit einem einzigen Befehl vor und zeigt anschließend eine Zusammenfassung an, die Sie Ihrem Ticket beifügen können.
  • Manuelle Methode: Sie führen jeden Schritt selbst aus, wenn Sie die Kontrolle über jeden Befehl behalten möchten.

Der QEMU-Agent ist auf den von PulseHeberg gelieferten VPS bereits installiert: Normalerweise müssen Sie nur prüfen, ob er aktiv ist. Der SSH-Schlüssel muss jedoch hinzugefügt werden, falls er noch nicht vorhanden ist.

Bevor Sie beginnen#

Lifeline betrifft Linux-VPS. Verbinden Sie sich per SSH mit Ihrem VPS über ein Administratorkonto. Führen Sie diese Vorbereitung durch, solange Sie noch Zugriff auf den Server haben, und lassen Sie Ihre Sitzung während der Arbeiten geöffnet.

Die folgenden Befehle verwenden das Konto root. Wenn Sie ein anderes Konto mit sudo verwenden, öffnen Sie zunächst eine Administratorsitzung:

sudo -i

Wenn Sie bereits als root angemeldet sind, ist dieser Befehl nicht erforderlich.

SSH-Zugriff in Ihrer Firewall erlauben#

Das Lifeline-Skript ändert Ihre Firewall niemals. Wenn Sie auf Ihrem VPS oder davor eine Firewall einsetzen, müssen Sie eingehende SSH-Verbindungen von beiden folgenden Quell-IP-Adressen erlauben:

  • 185.157.244.42
  • 89.234.180.180

Erlauben Sie diese Verbindungen auf dem TCP-Port Ihres SSH-Servers: standardmäßig 22 oder auf Ihrem individuell festgelegten Port. Richten Sie diese Regeln vor dem Einsatz selbst in jeder Firewall ein, die den Zugriff auf Ihren VPS filtert.

Automatische Methode (empfohlen)#

Unterstützte Systeme#

FamilieDistributionen
DebianDebian, Ubuntu
Red HatAlmaLinux, Rocky Linux, CentOS, RHEL, Oracle Linux, CloudLinux, Fedora
SUSEopenSUSE, SLES
ArchArch Linux, Manjaro
AlpineAlpine Linux
GentooGentoo

Bei einer anderen Linux-Distribution fügt das Skript den Schlüssel hinzu und prüft die SSH-Konfiguration; wenn der QEMU-Agent fehlt, installieren Sie ihn mit Ihrem Paketmanager und führen Sie das Skript anschließend erneut aus.

Skript ausführen#

Führen Sie aus Ihrer root-Sitzung aus:

curl -fsSL https://lifeline.pulseheberg.com/setup.sh | sh

Wenn curl nicht installiert ist (häufig bei Alpine), verwenden Sie wget:

wget -qO- https://lifeline.pulseheberg.com/setup.sh | sh

Möchten Sie das Skript lieber lesen, bevor Sie es ausführen? Laden Sie es herunter, sehen Sie es sich an und führen Sie es dann aus:

curl -fsSLo lifeline-setup.sh https://lifeline.pulseheberg.com/setup.sh
less lifeline-setup.sh
sh lifeline-setup.sh

Was das Skript tut#

  1. QEMU-Agent: Es prüft, ob der Kommunikationskanal mit unserer Infrastruktur vorhanden ist, installiert das Paket qemu-guest-agent, falls es fehlt, aktiviert es beim Start und startet es.
  2. Lifeline-SSH-Schlüssel: Es fügt unseren öffentlichen Schlüssel zu /root/.ssh/authorized_keys hinzu, ohne Ihre Schlüssel zu verändern und ohne ihn jemals zweimal hinzuzufügen, wendet die erwarteten Berechtigungen an und, wenn SELinux aktiv ist, die Sicherheitskontexte. Es prüft außerdem, ob der enthaltene Schlüssel mit dem unten veröffentlichten Fingerabdruck übereinstimmt.
  3. SSH-Konfiguration: Es liest die effektive Konfiguration des SSH-Servers (Anmeldung von root, Schlüsseldatei, Port, Zugriffsbeschränkungen) und meldet alles, was unseren Zugriff verhindern würde.

Das Skript ändert niemals die Konfiguration des SSH-Servers, Ihre Firewall, Ihre Passwörter oder Ihre eigenen Schlüssel. Es reaktiviert keinen Dienst, den Sie maskiert haben, und berührt keine Virtualisierungseinstellungen. Es löst keinen Einsatz aus.

Ergebnis lesen#

Jeder Prüfung steht ein Kennzeichen voran:

KennzeichenBedeutung
[ OK ]Der Punkt ist konform.
[INFO]Information, die in Ihrem Ticket erwähnt werden sollte (zum Beispiel benutzerdefinierter SSH-Port).
[ATTN]Punkt, der vor einem Einsatz behoben werden muss. Eine Erklärung folgt der Zeile.
[ERR ]Das Skript konnte einen Schritt nicht abschließen.

Das Skript endet mit einer Zusammenfassung. Kopieren Sie diese unverändert in Ihr Ticket: Sie gibt unserem Team den Zustand Ihres VPS ohne weiteren Austausch.

--- Récapitulatif à copier dans votre ticket Lifeline ---
lifeline-setup : 1.0.0, mode install, 2026-10-25 14:33 UTC
hôte           : mon-vps
système        : Debian GNU/Linux 12 (bookworm), noyau 6.1.0-26-amd64, init systemd
agent QEMU     : actif, canal présent
clé Lifeline   : présente, permissions conformes
fichier        : /root/.ssh/authorized_keys
SSH            : PermitRootLogin prohibit-password, PubkeyAuthentication yes, port 22
SELinux        : absent
statut         : prêt
---------------------------------------------------------

Die abschließende Meldung fasst die Situation zusammen:

  • Ihr VPS ist für Lifeline bereit: Es sind keine weiteren Maßnahmen erforderlich.
  • Vorbereitung unvollständig: Beheben Sie die Zeilen [ATTN] gemäß den angezeigten Erklärungen und führen Sie das Skript anschließend erneut aus. Wenn Sie sie nicht selbst beheben können, eröffnen Sie ein Ticket und fügen Sie die Zusammenfassung bei.
  • Die Vorbereitung ist fehlgeschlagen: Eröffnen Sie ein Ticket und fügen Sie die Zusammenfassung bei.

Das Skript kann beliebig oft erneut ausgeführt werden: Es wiederholt nur, was fehlt.

Optionen#

OptionWirkung
--checkNur Diagnose: Das Skript prüft alles, ohne etwas zu ändern.
--removeEntfernt den Lifeline-Schlüssel und nur diesen.
--helpZeigt die Hilfe an.

Fügen Sie bei der Einzeilen-Befehlsvariante die Option nach sh -s -- hinzu:

curl -fsSL https://lifeline.pulseheberg.com/setup.sh | sh -s -- --check

Wenn Sie das Skript über ein Automatisierungstool ausführen, lauten seine Exit-Codes: 0 VPS bereit, 1 Fehler, 2 mindestens ein zu behebender Punkt.

Manuelle Methode#

1. Prüfen, ob der QEMU-Agent aktiv ist#

Der QEMU-Agent ermöglicht unserer Infrastruktur die Kommunikation mit dem System Ihres VPS, insbesondere für bestimmte Verwaltungsvorgänge und die Vorbereitung von Snapshots.

Führen Sie aus:

systemctl is-active qemu-guest-agent

Das erwartete Ergebnis ist:

active

Sie können die Details einsehen mit:

systemctl status qemu-guest-agent --no-pager

Die Zeile Active: muss active (running) anzeigen.

Unter Alpine Linux, das systemd nicht verwendet, erfolgt die Prüfung mit:

rc-service qemu-guest-agent status

Das erwartete Ergebnis enthält status: started.

Wenn der Agent gestoppt ist

Starten Sie ihn und prüfen Sie anschließend erneut seinen Status:

systemctl start qemu-guest-agent
systemctl is-active qemu-guest-agent

Unter Alpine Linux:

rc-update add qemu-guest-agent default
rc-service qemu-guest-agent start

Wenn der Agent nicht gefunden wird

Das Paket wurde möglicherweise entfernt oder Ihr System wurde neu installiert. Installieren Sie es je nach Distribution neu:

Debian / Ubuntu:

apt update
apt install qemu-guest-agent
systemctl start qemu-guest-agent

AlmaLinux / Rocky Linux / CentOS / RHEL / Fedora:

dnf install qemu-guest-agent
systemctl enable --now qemu-guest-agent

Ersetzen Sie unter CentOS 7 dnf durch yum.

openSUSE / SLES:

zypper install qemu-guest-agent
systemctl enable --now qemu-guest-agent

Arch Linux / Manjaro:

pacman -S qemu-guest-agent
systemctl enable --now qemu-guest-agent

Alpine Linux:

apk add qemu-guest-agent
rc-update add qemu-guest-agent default
rc-service qemu-guest-agent start

Gentoo:

emerge app-emulation/qemu-guest-agent

Führen Sie dann je nach Init-System systemctl enable --now qemu-guest-agent oder rc-update add qemu-guest-agent default && rc-service qemu-guest-agent start aus.

Prüfen Sie anschließend mit dem obigen Prüfbefehl, ob der Agent tatsächlich aktiv ist.

Wenn der Agent nicht startet

Der Agent benötigt einen von unserer Infrastruktur bereitgestellten Kommunikationskanal. Prüfen Sie dessen Vorhandensein:

ls -l /dev/virtio-ports/

Die Liste muss org.qemu.guest_agent.0 enthalten. Unter Alpine Linux kann dieser Link fehlen, obwohl der Kanal vorhanden ist: Verwenden Sie in diesem Fall die automatische Methode, die den Agenten mit dem richtigen Pfad konfiguriert.

Wenn der Dienst weiterhin fehlschlägt, maskiert (masked) ist oder ein fehlendes Kommunikationsgerät meldet, eröffnen Sie ein Ticket und fügen Sie die Fehlermeldung bei. Ändern Sie keine Virtualisierungseinstellungen, um das Problem zu umgehen. Ein aktiver Dienst bestätigt seine Funktion im VPS; die Kommunikation mit der Infrastruktur kann ebenfalls eine Prüfung durch unser Team erfordern.

2. Lifeline-SSH-Schlüssel hinzufügen#

Hier ist der öffentliche Schlüssel, den unser Team verwendet:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHc/36ifmXENTDGHuWYHU2KN0e/kad5UfkvAjdgMmpSc [email protected]

Sein SHA256-Fingerabdruck ist:

SHA256:/IT7ML5kryCTcjLRAKS/RfTxmIZeHKMPXqRsVwvUhVI

Fügen Sie diesen Schlüssel in einer einzigen Zeile zur Datei /root/.ssh/authorized_keys hinzu. Der folgende Block erstellt den Ordner und die Datei bei Bedarf, behält Ihre vorhandenen Schlüssel bei und vermeidet das doppelte Hinzufügen derselben Zeile:

install -d -m 700 -o root -g root /root/.ssh
touch /root/.ssh/authorized_keys
chown root:root /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

lifeline_key='ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHc/36ifmXENTDGHuWYHU2KN0e/kad5UfkvAjdgMmpSc [email protected]'
if ! grep -qxF "$lifeline_key" /root/.ssh/authorized_keys; then
    printf '\n%s\n' "$lifeline_key" >> /root/.ssh/authorized_keys
fi
unset lifeline_key

Das Hinzufügen des Schlüssels erfordert keinen Neustart von SSH oder des VPS. Ersetzen Sie nicht den Inhalt von authorized_keys: Ihre eigenen Schlüssel müssen vorhanden bleiben.

Wenn SELinux aktiv ist (AlmaLinux, Rocky Linux, RHEL, Fedora…), wenden Sie zusätzlich die erwarteten Kontexte an:

restorecon -RF /root/.ssh

Wenn Ihre SSH-Konfiguration angepasst ist

Dieses Verfahren setzt voraus, dass SSH die Anmeldung von root per Schlüssel erlaubt und die Datei /root/.ssh/authorized_keys verwendet. Sie können die effektiven Einstellungen einsehen mit:

sshd -T | grep -Ei '^(permitrootlogin|pubkeyauthentication|authorizedkeysfile|port) '

permitrootlogin muss prohibit-password, without-password oder yes sein, und pubkeyauthentication muss yes sein.

Wenn Sie diesen Zugriff deaktiviert, den SSH-Port geändert, die zulässigen Adressen per Firewall eingeschränkt oder eine andere Schlüsseldatei konfiguriert haben, geben Sie dies in Ihrem Ticket an. Unser Team teilt Ihnen mit, wie der Zugriff angepasst werden kann. Aktivieren Sie nicht die Passwortauthentifizierung und deaktivieren Sie nicht Ihre Firewall, um dieses Tutorial anzuwenden.

3. Vorhandensein des Schlüssels prüfen#

Führen Sie weiterhin aus der Administratorsitzung aus:

ssh-keygen -lf /root/.ssh/authorized_keys

Die Liste muss diesen Fingerabdruck enthalten:

256 SHA256:/IT7ML5kryCTcjLRAKS/RfTxmIZeHKMPXqRsVwvUhVI [email protected] (ED25519)

Prüfen Sie auch die Berechtigungen:

ls -ld /root/.ssh
ls -l /root/.ssh/authorized_keys

Der Ordner muss root gehören und die Berechtigungen drwx------ haben, die Datei muss root gehören und die Berechtigungen -rw------- haben.

Diese Prüfung bestätigt, dass der Schlüssel installiert ist; nur ein Verbindungstest durch unser Team kann bestätigen, dass der Zugriff durchgängig funktioniert. Sie können eine Verbindung nicht allein mit unserem öffentlichen Schlüssel testen.

Einen Einsatz anfordern#

Ihr VPS ist bereit, wenn:

  • Der Agent qemu-guest-agent aktiv ist.
  • Der öffentliche Lifeline-Schlüssel im für den Einsatz vorgesehenen Konto vorhanden ist.
  • Ihre SSH-Konfiguration den mit unserem Team vereinbarten Zugriff erlaubt und Ihre Firewall, sofern vorhanden, SSH-Verbindungen von 185.157.244.42 und 89.234.180.180 zulässt.

Wenn Lifeline noch nicht aktiviert ist, gehen Sie zum Verwaltungsbereich Ihres VPS, sobald dieser in Betrieb ist.

Um Hilfe anzufordern, eröffnen Sie ein Lifeline-Ticket, wählen Sie den betroffenen VPS aus und beschreiben Sie Ihr Anliegen. Geben Sie die aufgetretenen Fehler, die bereits versuchten Maßnahmen und eventuelle Produktionseinschränkungen an. Wenn Sie die automatische Methode verwendet haben, fügen Sie die vom Skript angezeigte Zusammenfassung bei.

Geben Sie niemals ein Passwort oder einen privaten Schlüssel im Ticket an. Wir verwenden den installierten öffentlichen Schlüssel, um uns mit unserem privaten Schlüssel zu authentifizieren.

Die Installation des Schlüssels löst keinen Einsatz aus und gilt nicht als dauerhafte Zugriffsberechtigung. Die geplanten Maßnahmen, das verwendete Guthaben und der eventuelle Betrag werden im Ticket vor dem Einsatz bestätigt.

Lifeline-Schlüssel entfernen#

Sie können den Lifeline-Schlüssel jederzeit entfernen. Es wird nur seine Zeile gelöscht: Ihre anderen Schlüssel bleiben erhalten.

Mit dem Skript:

curl -fsSL https://lifeline.pulseheberg.com/setup.sh | sh -s -- --remove

Manuell:

sed -i '\#AAAAC3NzaC1lZDI1NTE5AAAAIHc/36ifmXENTDGHuWYHU2KN0e/kad5UfkvAjdgMmpSc#d' /root/.ssh/authorized_keys

Das Entfernen des Schlüssels kündigt das Abonnement nicht, aber der für Einsätze erforderliche Zugriff muss vor jeder Anfrage wiederhergestellt werden.