Backup:Hautptseite: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 63: | Zeile 63: | ||
==Wiedererstellung== | ==Wiedererstellung== | ||
pre> | <pre> | ||
| Zeile 124: | Zeile 124: | ||
$wgExtraNamespaces[NS_BACKUP_TALK] = "Backup_Diskussion"; | $wgExtraNamespaces[NS_BACKUP_TALK] = "Backup_Diskussion"; | ||
$wgVisualEditorAvailableNamespaces[] = NS_BACKUP; | $wgVisualEditorAvailableNamespaces[] = NS_BACKUP; | ||
</pre> | |||
Aktuelle Version vom 13. Juli 2025, 21:20 Uhr
SSH Key Schlüssel Anlegen
# Erstellt einen neuen SSH-Schlüssel (falls noch nicht vorhanden) ssh-keygen -t rsa -b 4096 # Kopiert den öffentlichen Schlüssel auf den Zielserver # Ersetzen Sie 'benutzer' und 'hostname' durch die entsprechenden Werte ssh-copy-id benutzer@hostname # Falls der SSH-Server einen anderen Port als 22 verwendet # ssh-copy-id -p <port> benutzer@hostname === Vorteile === * '''Sicherheit:''' Deutlich sicherer als passwortbasierte Authentifizierung. SSH-Schlüssel sind wesentlich komplexer und widerstandsfähiger gegen Brute-Force-Angriffe. * '''Bequemlichkeit:''' Ermöglicht passwortloses Anmelden, was die Automatisierung von Aufgaben (z.B. Backups mit rsync, wie im unteren Beispiel) erheblich vereinfacht. === Nachteile === * '''Schlüsselverwaltung:''' Der private Schlüssel muss absolut sicher aufbewahrt werden. Bei Diebstahl erhält ein Angreifer Zugriff auf alle Systeme, auf denen der öffentliche Schlüssel hinterlegt ist. * '''Einmaliger Einrichtungsaufwand:''' Die Ersteinrichtung ist etwas aufwändiger als die reine Verwendung eines Passworts. * '''Verlust des Schlüssels:''' Bei Verlust des privaten Schlüssels (ohne Backup) geht der Zugriff verloren und muss über einen anderen Weg wiederhergestellt werden. === Was tun, wenn der Zugriff nicht mehr möglich ist? === Wenn Sie einen neuen Rechner einrichten oder den Zugriff über Ihren bisherigen Schlüssel verloren haben, gibt es mehrere Möglichkeiten: * '''Privaten Schlüssel vom alten Rechner kopieren:''' ** Der sicherste und einfachste Weg ist, Ihren privaten Schlüssel (z.B. `~/.ssh/id_rsa`) von Ihrem alten auf Ihren neuen Rechner zu kopieren. ** Stellen Sie sicher, dass die Datei auf dem neuen System die richtigen Berechtigungen hat (`chmod 600 ~/.ssh/id_rsa`), damit sie von SSH akzeptiert wird. * '''Neuen Schlüssel generieren und hinzufügen:''' ** Erstellen Sie auf Ihrem neuen Rechner ein neues Schlüsselpaar (wie oben beschrieben mit `ssh-keygen`). ** Sie müssen den neuen '''öffentlichen''' Schlüssel (`~/.ssh/id_rsa.pub`) zum Server hinzufügen. Dafür benötigen Sie vorübergehend eine andere Zugriffsmöglichkeit auf den Server (z.B. Passwort-Login, Zugriff über einen anderen Rechner oder eine Konsole Ihres Hosters), um den Inhalt der `.pub`-Datei in die `~/.ssh/authorized_keys`-Datei auf dem Server einzufügen. * '''Zugriff über den Hoster wiederherstellen:''' ** Wenn keine der oben genannten Methoden möglich ist, müssen Sie sich an Ihren Server-Hoster wenden. Dieser kann Ihnen in der Regel über ein Web-Interface (Rescue-System, VNC/KVM-Konsole) Zugriff gewähren, sodass Sie einen neuen öffentlichen Schlüssel hinterlegen können.
Beispiel Site
rsync -avz --delete \ --exclude 'LocalSettings.php' \ --exclude '.git/' \ --exclude '.gitignore' \ --exclude 'images/' \ --exclude 'cache/' \ /var/www/mediawiki \ user@prod:/var/www/mediawiki/
Backup erstellen
cd /home/thorsten gh repo clone thorstenkloehn/Download sudo chmod 777 -R Download cd /home/thorsten/Download sudo rm /home/thorsten/Download/pagedump.xml ssh root@ahrensburg.city "php /var/www/mediawiki/mediawiki/maintenance/dumpBackup.php --full" > /home/thorsten/Download/pagedump.xml git add pagedump.xml git commit -m "Backup" git push
Wiedererstellung
define("NS_SCHWACHSTELLEN", 3006);
define("NS_SCHWACHSTELLEN_TALK", 3007);
$wgExtraNamespaces[NS_SCHWACHSTELLEN] = "Schwachstellen";
$wgExtraNamespaces[NS_SCHWACHSTELLEN_TALK] = "Schwachstellen Diskussion";
$wgNamespacesWithSubpages[NS_SCHWACHSTELLEN] = true;
// VisualEditor für Schwachstellen-Namensraum aktivieren
$wgVisualEditorAvailableNamespaces[NS_SCHWACHSTELLEN] = true;
$wgVisualEditorAvailableNamespaces[NS_SCHWACHSTELLEN_TALK] = true;
// Server-Namensraum
define("NS_SERVER", 3000);
define("NS_SERVER_TALK", 3001);
$wgExtraNamespaces[NS_SERVER] = "Server";
$wgExtraNamespaces[NS_SERVER_TALK] = "Server Diskussion";
$wgNamespacesWithSubpages[NS_SERVER] = true;
// Kurse-Namensraum
define("NS_KURSE", 3002);
define("NS_KURSE_TALK", 3003);
$wgExtraNamespaces[NS_KURSE] = "Kurse";
$wgExtraNamespaces[NS_KURSE_TALK] = "Kurse Diskussion";
$wgNamespacesWithSubpages[NS_KURSE] = true;
// AI-Namensraum
define("NS_AI", 3004);
define("NS_AI_TALK", 3005);
$wgExtraNamespaces[NS_AI] = "Ai";
$wgExtraNamespaces[NS_AI_TALK] = "Ai Diskussion";
$wgNamespacesWithSubpages[NS_AI] = true;
// VisualEditor für die neuen Namensräume aktivieren
$wgVisualEditorAvailableNamespaces[NS_SERVER] = true;
$wgVisualEditorAvailableNamespaces[NS_SERVER_TALK] = true;
$wgVisualEditorAvailableNamespaces[NS_KURSE] = true;
$wgVisualEditorAvailableNamespaces[NS_KURSE_TALK] = true;
$wgVisualEditorAvailableNamespaces[NS_AI] = true;
$wgVisualEditorAvailableNamespaces[NS_AI_TALK] = true;
define("NS_IDE", 3008);
define("NS_IDE_TALK", 3009);
$wgExtraNamespaces[NS_IDE] = "IDE";
$wgExtraNamespaces[NS_IDE_TALK] = "IDE Diskussion";
$wgNamespacesWithSubpages[NS_IDE] = true;
$wgVisualEditorAvailableNamespaces[NS_IDE] = true;
$wgVisualEditorAvailableNamespaces[NS_IDE_TALK] = true;
define("NS_BUILDER", 3010);
define("NS_BUILDER_TALK", 3011);
$wgExtraNamespaces[NS_BUILDER] = "Builder";
$wgExtraNamespaces[NS_BUILDER_TALK] = "Builder_Diskussion";
$wgVisualEditorAvailableNamespaces[] = NS_BUILDER;
define("NS_BACKUP", 3012);
define("NS_BACKUP_TALK", 3013);
$wgExtraNamespaces[NS_BACKUP] = "Backup";
$wgExtraNamespaces[NS_BACKUP_TALK] = "Backup_Diskussion";
$wgVisualEditorAvailableNamespaces[] = NS_BACKUP;