Wie kann ich SSH-Schlüssel sichern?

34

Ich plane eine Neuinstallation von Ubuntu 11.10 in meinem System. Davor habe ich in dieser Maschine eine schlüsselbasierte SSH-Authentifizierung eingerichtet. Ist es möglich, diese SSH-Schlüssel zu sichern, damit ich sie in meiner neuen Installation verwenden kann? Oder muss ich die keybasierte SSH-Authentifizierung erneut einrichten? Welche Dateien muss ich kopieren, wenn ich ein Backup erstellen kann? Kann es jemand im Detail erklären pls. Danke im Voraus.

karthick87
quelle
1
Sprechen Sie über einen Server oder eine Client-Maschine?
Enzotib
Ich spreche über die Server-Maschine.
karthick87

Antworten:

39

Nur auf SSH antworten ... ja, Sie können Ihre Schlüssel behalten.

Ich kann mir jedoch kein Thema vorstellen, über das ich etwas sagen könnte. Es ist ganz einfach: Wenn Ihr Benutzername ist karthick, dann befinden sich die Schlüssel in einem versteckten Verzeichnis hier:

/home/karthick/.ssh

oder

~/.ssh

Die id_rsa.pubDatei enthält den zur Authentifizierung verwendeten öffentlichen Schlüssel. Aber es gibt noch andere Dateien, die aufbewahrt werden müssen - eigentlich alle , wie known_hosts zum Beispiel . Das WICHTIGSTE ist id_rsa(beachten Sie das Fehlen von .pub), da dies Ihr privater Schlüssel ist. Sichern Sie jeden Benutzer. Zum Beispiel, wenn Sie SSH für einrichten root, bekommen /root/.sshauch. Und so weiter für so viele Konten wie Sie aus diesem Grund haben.

d -_- b
quelle
1
Aus diesem Grund ist es immer ratsam, das Verzeichnis / home in einer anderen Partition zu haben. Nur für den Fall, dass Sie eine Neuinstallation durchführen möchten, möchten Sie nichts von Ihrer eigenen Konfiguration verlieren.
Maniat1k
5
Diese Antwort ist irreführend. SSH verwendet ein privates / öffentliches Schlüsselpaar. Der private Schlüssel ist in id_rsa. Dies ist der wichtigste Schlüssel für die Sicherung.
Jan
1
Sie können den öffentlichen Schlüssel (id_rsa.pub) vom privaten Schlüssel (id_rsa) wiederherstellen, aber nicht umgekehrt. Die .pubDatei enthält eine Zeile, die in die Server eingefügt werden kann ~/.ssh/authorized_keysund bei der Verbindung mit dem Server überhaupt nicht verwendet wird.
Lekensteyn
1
@ maniat1k Im Allgemeinen stimme ich nicht zu, dass Sie /homeeine separate Partition für das Betriebssystem haben sollten, da einer der Unterschiede zwischen Distributionen oder dist-Versionen darin besteht, dass sich die Konfigurationsdateiformate ändern können. Wenn Sie Ihre Konfiguration für mehrere Betriebssysteme beibehalten möchten, sollten Sie dies meines Erachtens ausdrücklich für bestimmte Programme tun.
Quodlibetor
1
@Lekensteyn Tatsächlich wird die .pubDatei manchmal verwendet, wenn eine Verbindung zu einem Server hergestellt wird. Wenn der geheime Schlüssel verschlüsselt .pubist, wird die Datei verwendet, um den öffentlichen Schlüssel an den Server zu senden. Wenn der Server den öffentlichen Schlüssel ablehnt, muss der Benutzer nicht zur Eingabe eines Kennworts aufgefordert werden. Nur wenn der Server den öffentlichen Schlüssel akzeptiert, wird der geheime Schlüssel entschlüsselt. Und wenn Sie viele Schlüssel in einem haben ssh-agentund den ssh-Client anweisen möchten, auf welchen von ihnen Sie zugreifen sollen, können Sie ihn bitten, eine bestimmte .pubDatei für die Authentifizierung zu verwenden.
Kasperd
33

Kryptografische Schlüssel, die Sie möglicherweise sichern möchten.

  • ~/.gnupg/*
  • ~/.pki/nssdb/*
  • ~/.gnome2/keyrings/*
  • ~/.ssh/*
  • /usr/local/apache2/conf/ssl.crt/server.crt
  • /usr/local/apache2/conf/ssl.key/server.key
  • /etc/ssh/*
  • /etc/ssl/private/*
  • /etc/cups/ssl/*
Anonym
quelle
3
Du hast genau die verpasst, nach der er gefragt hat ( ~/.ssh), aber trotzdem eine gute Liste :)
Caesium
Sie verfehlten auch/etc/ssh
Jan
Tolle Liste! Es ist schwieriger für eine solche Liste zu googeln, als es sein sollte. Vielen Dank für die Bereitstellung.
Christian
8

Jeder Benutzer hat eine Direktive ~ / .ssh, die normalerweise die folgenden Dateien enthält:

1) id_dsa             private key of this user (different filename for rsa keys)
1) id_dsa.pub         public key of this user
2) authorized_keys    public key of other users (or same user on other machines)
   config             personal configuration
   known_hosts        host keys of other machines

Zusätzlich finden Sie in / etc / ssh /:

3) ssh_host_dsa_key
3) ssh_host_dsa_key.pub
3) ssh_host_rsa_key
3) ssh_host_rsa_key.pub

Dies sind die Host-Schlüssel, Schlüssel, die diesen Computer identifizieren.

Sie möchten auf jeden Fall alle privaten und öffentlichen Schlüssel sichern. Wir nennen die betreffende Maschine home und den Benutzer user @ home. Dieselbe Person hat einen Account user @ remote und verwendet die schlüsselbasierte Anmeldung in beide Richtungen. Was würde passieren, wenn Sie eine der Schlüsseldateien verlieren:

  1. Sie verlieren die Identität von user @ home. ssh user@remotevon zu Hause aus funktioniert nicht mehr mit schlüsselbasierter Authentifizierung.
  2. user @ remote verliert das Recht, sich mit seinem Schlüssel zu Hause anzumelden. ssh user@homefunktioniert nicht mehr von remote mit key based auth.
  3. Sie verlieren die Identität des Gastgebers. user @ remote wird eine Warnung angezeigt, dass sich die Hostschlüssel beim Versuch geändert haben ssh user@home. Je nach Konfiguration kann er sich dadurch nicht einloggen.
Jan
quelle
Antworten auf nicht gestellte Fragen ... :)