KeyHelp: Einstellungen exportieren und importieren, was die Datei enthält
So exportieren und importieren Sie KeyHelp-Einstellungen, welche Bereiche der Import wirklich übernimmt und warum die Exportdatei wie ein Passwort zu behandeln ist.
Geprüft am 01.10.2026 · für KeyHelp 26.1.1
Mit KI erstellt – redaktionelle Prüfung ausstehend
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Wer einen zweiten KeyHelp-Server aufsetzt oder die Panel-Konfiguration vor einem Umbau sichern will, findet unter „Konfiguration“ die Seite „Einstellungen Importieren/Exportieren“. Ein Klick erzeugt eine JSON-Datei, die sich auf einem anderen Server wieder einspielen lässt. Was genau in dieser Datei steht, verrät die Oberfläche nicht. Wir haben die Datei geöffnet, den Import nach dem Zurücksetzen der Test-VM ausprobiert und dabei zwei Dinge gefunden, die Sie vor dem ersten Export kennen sollten: Die Datei enthält mehr, als sich importieren lässt, und sie enthält Zugangsdaten im Klartext. Die Anleitung richtet sich an Administratoren eines Servers wie in KeyHelp installieren und absichern. Ein Ersatz für eine echte Sicherung ist der Export nicht, dafür gibt es KeyHelp-Backups extern einrichten. Getestet haben wir mit KeyHelp 26.1.1 auf Debian 12.
Voraussetzungen
- Ein KeyHelp-Server als Quelle, getestet mit KeyHelp 26.1.1 (Build 3698) auf Debian 12.15.
- Ein Zielserver mit exakt derselben KeyHelp-Version. KeyHelp weist darauf hin, „dass nur Dateien importiert werden können, die mit der gleichen Versionsnummer des Control Panels erstellt wurden“. Im Test haben wir dazu dieselbe VM auf ihren Grundzustand zurückgesetzt, einen zweiten Server hatten wir nicht.
- Administratorzugang zum Panel und für die Prüfung SSH als root.
Schritt 1: Export herunterladen
Öffnen Sie „Konfiguration“ und dort den Punkt „Einstellungen Importieren/Exportieren“. Im oberen Teil „Einstellungen exportieren“ steht „Exportdatei erstellen“ mit der Schaltfläche „Download“. Der Browser speichert die Datei keyhelp_settings_2026-10-01.json, im ersten Test 12564 Bytes groß. Die folgenden Ausgaben stammen aus dem zweiten Export (siehe Schritt 3).

Verifizieren: Die Datei ist reines JSON mit Kopfteil meta:
file /root/keyhelp_settings_2026-10-01.json; head -c 300 /root/keyhelp_settings_2026-10-01.json
/root/keyhelp_settings_2026-10-01.json: JSON text data
{
"meta": {
"keyhelp_version": "26.1.1",
"export_date": "2026-10-01 21:04:34"
},
Schritt 2: Inhalt der Datei verstehen
Neben meta hat die Datei die Bereiche settings, databases, white_label_images, smtp und email_design. Unter settings stehen 186 Einträge, also fast die gesamte Panel-Konfiguration: Hostname, Nameserver, die IP-Adresse des Servers, Passwort-Richtlinie, Virenscanner, Backup, Firewall, TLS, Webmail und mehr. Ein Auszug:
python3 -c "
import json
s=json.load(open('/root/keyhelp_settings_2026-10-01.json'))['settings']
for k in ('dns.ips','general.hostname','password.min_length','avscan.scan_paths','firewall.is_enabled'): print(k, '=', s[k])"
dns.ips = 203.0.113.10
general.hostname = server.example.de
password.min_length = 16
avscan.scan_paths = /home/users/,/tmp/,/var/tmp/
firewall.is_enabled = 1
Dazu kommen die Kennungen des Servers, general.keyhelp_id (128 Zeichen) und general.keyhelp_uuid. Unter databases liegen Tabellen für api_keys, email_notifications, email_notifications_messages, account_templates, white_label und custom_buttons. In unserem Grundzustand war nur account_templates gefüllt, mit einer Konto-Vorlage. Deren Felder entsprechen den Ressourcen und Rechten eines Kundenkontos, etwa disk_space, email_accounts, domains, databases, ftp, php, ssh und backup.
Die Schlüssel unter settings sind nach Bereichen benannt. Im Test kamen 48 Präfixe vor, darunter api, avscan, backup, dns, email, email_notification, firewall, general, login, password, ssl, tls, webmail, webserver und white_label. Auch flüchtige Werte wie ein Nachrichten-Zwischenspeicher (news.cache) und der Zeitpunkt der nächsten Nachrichtenabfrage (news.nextupdate) stehen darin. Die Datei wirkt also eher wie ein Abzug der Einstellungstabelle als wie eine gezielt zusammengestellte Vorlage.
Verifizieren: Die Bereiche zeigt ein kurzer Python-Aufruf auf dem Server:
python3 -c "
import json
d=json.load(open('/root/keyhelp_settings_2026-10-01.json'))
print('Top-Level:', list(d))
print('settings:', len(d['settings']))"
Top-Level: ['meta', 'settings', 'databases', 'white_label_images', 'smtp', 'email_design']
settings: 186
Schritt 3: Sensible Daten im Export prüfen
Um zu sehen, was mit Zugangsdaten passiert, haben wir einen API-Schlüssel „Export-Test“ angelegt und unter „Benachrichtigungen“ > „Allgemeine Einstellungen“ einen externen SMTP-Server mit Benutzername und einem Testpasswort eingetragen. KeyHelp prüft den SMTP-Server beim Speichern. Für den Test lief deshalb in der VM ein kleiner Dummy-SMTP-Dienst auf 127.0.0.1 Port 2525. Dann haben wir erneut exportiert. Der Bereich smtp enthielt das Passwort im Klartext:
smtp: {
"host": "127.0.0.1",
"port": 2525,
"secure": "",
"auth": true,
"username": "notify@kunde2.example.de",
Die nächste Zeile der Ausgabe war "password": "<Testpasswort im Klartext>", also genau das Passwort, das wir im Formular eingetragen hatten (hier durch einen Platzhalter ersetzt). Auf dem Server selbst liegt es ebenfalls im Klartext, in /etc/keyhelp/config/smtp.json (siehe Schritt 4).
Der API-Schlüssel steht dagegen nicht im Klartext in der Datei. Das Formular zum Anlegen sagt: „Ihr API-Schlüssel wird nicht im Klartext auf dem Server gespeichert.“ Im Klartext gespeichert wird nur eine vorangestellte zufällige Zeichenfolge als Präfix. Genau das enthält der Export: Feld api_key mit dem Präfix und einem bcrypt-Hash (beginnt mit $2y$10$), dazu die freigegebenen IP-Adressen. Auch so gehört die Datei nicht in fremde Hände: Wer sie importiert, übernimmt den Schlüssel samt IP-Freigabe in die Schlüsselliste seines Servers.
Verifizieren: Suchen Sie in Ihrer eigenen Exportdatei nach dem Bereich smtp. Steht dort ein password, speichern Sie die Datei nur verschlüsselt und löschen Sie Kopien auf dem Server und im Download-Ordner.
Schritt 4: Einstellungen importieren
Den Import haben wir nach dem Zurücksetzen der VM auf ihren Grundzustand ausprobiert, also den Stand des ersten Exports: kein API-Schlüssel, keine SMTP-Daten, Passwort-Mindestlänge 12. Im unteren Teil der Seite wählen Sie unter „Exportdatei hochladen“ die Datei aus. KeyHelp warnt: „Importieren Sie nur Dateien aus Quellen, denen Sie vertrauen!“ Unter „Import-Umfang“ haken Sie die gewünschten Bereiche an. Der Hinweis dazu lautet: „Bitte beachten Sie, dass beim Importieren Ihre aktuellen Einstellungen überschrieben werden.“
Zur Auswahl stehen „API-Einstellungen“ („Importiert alle API-Schlüssel und API-bezogenen Einstellungen.“), „Konto-Vorlagen“, „Benachrichtigungseinstellungen“, „White-Label-Einstellungen“, „Benutzerdefinierte Schaltflächen“ und „Domain-Standardseite“. Zu „Benachrichtigungseinstellungen“ erklärt KeyHelp, dass die E-Mail-Design-Vorlage, alle benutzerdefinierten Benachrichtigungstexte und die Webhook-Einstellungen übernommen werden: „Die Absender-E-Mail-Adresse wird nur importiert, wenn die Exportdatei benutzerdefinierte SMTP-Einstellungen enthält.“ Wir haben „API-Einstellungen“ und „Benachrichtigungseinstellungen“ gewählt und „Importvorgang starten“ geklickt. KeyHelp meldete „Die Einstellungen wurden aktualisiert.“
Danach waren der API-Schlüssel mit Präfix und IP-Freigabe sowie die SMTP- und Webhook-Daten wieder da. Das Passwortfeld bleibt im Formular leer, mit dem Hinweis „Lassen Sie das Feld leer, um das aktuelle Passwort beizubehalten.“

Verifizieren: In der KeyHelp-Datenbank steht der Schlüssel wieder, und das SMTP-Passwort liegt in /etc/keyhelp/config/smtp.json (Rechte 600, Besitzer keyhelp):
mysql -N keyhelp -e "select id,name,LEFT(api_key,8),ips from api_keys"
ls -l /etc/keyhelp/config/smtp.json
2 Export-Test 8QJlypr2 192.0.2.10
-rw------- 1 keyhelp keyhelp 169 Oct 1 21:06 /etc/keyhelp/config/smtp.json
Die Passwort-Mindestlänge, die wir vor dem zweiten Export auf 16 gesetzt hatten, stand nach dem Import weiter auf 12. Für die allgemeinen Einstellungen gibt es keinen Import-Bereich. Übernommen wurden aus settings dagegen Webhook-URL und Absendername (email_notification.webhook_url, email_notification.sender_name), die zum Bereich Benachrichtigungen gehören. Die meisten der 186 Werte stehen also in der Datei, ohne importiert zu werden. Einzeln geprüft haben wir das nur für die Mindestlänge, die anderen vier Import-Bereiche gar nicht.
Typische Fehler
„Die hochgeladene Datei ist nicht mit dem Importsystem kompatibel.“
Diese Meldung erschien, als wir in einer Kopie der Datei keyhelp_version von 26.1.1 auf 26.1.0 geändert hatten. KeyHelp ergänzt: „Bitte beachten Sie, dass nur Dateien importiert werden können, die mit der gleichen Versionsnummer des Control Panels erstellt wurden, die auch auf diesem Server verwendet wird.“ Bringen Sie beide Server auf dieselbe Version, bevor Sie exportieren, oder exportieren Sie nach dem Update erneut.
Import ohne Rückmeldung
Ohne Haken unter „Import-Umfang“ lädt die Seite nach „Importvorgang starten“ nur neu, ohne Erfolgs- oder Fehlermeldung. Kontrollieren Sie, ob die gewünschten Bereiche angehakt sind.
„Verbindung zum SMTP-Server fehlgeschlagen.“
Diese Meldung kam beim Speichern der SMTP-Daten unter „Benachrichtigungen“, als der Server nicht erreichbar war, etwa mit „SMTP ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo for smtp.kunde2.example.de failed: Name or service not known (0)“. Mit dem lokalen Postfix auf Port 25 und leerer „Verbindungssicherheit“ versuchte KeyHelp trotzdem STARTTLS und scheiterte am Zertifikat: „error:0A000086:SSL routines::certificate verify failed“. Beim Import erschien keine solche Meldung, obwohl der Dummy-SMTP-Dienst nach dem Zurücksetzen der VM nicht mehr lief (ss -ltn zeigte Port 2525 nicht mehr). KeyHelp übernahm die SMTP-Daten also ohne erfolgreiche Verbindung. Senden Sie nach einem Import deshalb eine Testbenachrichtigung, bevor Sie sich darauf verlassen.
Häufige Fragen
Ersetzt der Export ein Backup?
Nein. Kunden, Domains, Postfächer, Datenbanken und die meisten Server-Einstellungen werden nicht importiert. Für die vollständige Sicherung nutzen Sie die Backup-Funktion. Gedacht ist der Export laut Import-Umfang für API-Schlüssel, Konto-Vorlagen, Benachrichtigungen, White-Label, Schaltflächen und Domain-Standardseite. Getestet haben wir davon API und Benachrichtigungen.
Werden Server-Kennungen und IP-Adressen übertragen?
Sie stehen in der Datei unter settings. Da es dafür keinen Import-Bereich gibt und die Passwort-Mindestlänge aus demselben Bereich nicht übernommen wurde, gehen wir davon aus, dass auch sie nicht übernommen werden. Einzeln geprüft haben wir das nur für die Mindestlänge.
Funktioniert ein importierter API-Schlüssel auf dem neuen Server?
Der Schlüssel ist nach dem Import mit Präfix und IP-Freigabe in der Liste. Eine Anfrage damit haben wir nicht getestet, die API war in unserem Grundzustand ausgeschaltet. Den Umgang mit der API zeigt KeyHelp-REST-API nutzen.
Testumfang
Wir haben den Export mit KeyHelp 26.1.1 erzeugt, den Inhalt ausgewertet und zwei der sechs Bereiche nach dem Zurücksetzen derselben VM importiert. Auffällig: Ein SMTP-Passwort steht im Klartext in der Datei. Nicht geprüft haben wir einen Import auf einem zweiten Server, die Bereiche Konto-Vorlagen, White-Label, Schaltflächen und Domain-Standardseite sowie einen API-Aufruf. Prüfen Sie Ihre Exportdatei, bevor Sie sie ablegen.
Fazit
Der Export ist nützlich, um Benachrichtigungen und API-Schlüssel (im Test belegt) sowie laut Import-Umfang Vorlagen, White-Label, Schaltflächen und Domain-Standardseite auf einen neuen Server derselben Version zu übertragen. Er ist kein Abbild der ganzen Konfiguration, auch wenn die Datei fast alle Einstellungen enthält. Weil darin Zugangsdaten im Klartext stehen können, gehört sie verschlüsselt abgelegt und nach dem Import gelöscht. Halten Sie Ihre übrigen Einstellungen zusätzlich schriftlich fest oder sichern Sie den Server vollständig.


