Backup:Hautptseite: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (19 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
==SSH Key Schlüssel Anlegen== | |||
<pre> | |||
# 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. | |||
</pre> | |||
==Beispiel Site== | ==Beispiel Site== | ||
<pre> | <pre> | ||
| Zeile 8: | Zeile 45: | ||
--exclude 'images/' \ | --exclude 'images/' \ | ||
--exclude 'cache/' \ | --exclude 'cache/' \ | ||
/ | /var/www/mediawiki \ | ||
user@prod:/ | user@prod:/var/www/mediawiki/ | ||
</pre> | |||
==Backup erstellen== | |||
<pre> | |||
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 | |||
</pre> | |||
==Wiedererstellung== | |||
<pre> | |||
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; | |||
</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;