it-swarm.com.de

Ich habe versehentlich meine SSH-Schlüsselpassphrase veröffentlicht. Was tun?

Also habe ich Eingabefelder falsch verstanden und jetzt ist meine SSH-Schlüssel-Passphrase für die Welt sichtbar und ich kann sie nicht einmal entfernen.

Soweit ich weiß, ist dies kein unmittelbares Sicherheitsbedenken, da die Passphrase nur vor der Offenlegung meines privaten Schlüssels selbst schützt. Da dies nicht geschehen ist (der Schlüssel existiert nur auf Hardware, die ich besitze), muss ich höchstens die Passphrase ändern, falls dies in Zukunft passieren sollte. Ich muss nicht überall, wo ich sie verwendet habe, zu einem anderen SSH-Schlüssel wechseln es.

Ist das korrekt? Wenn man bedenkt, dass all dies für private Projekte bestimmt ist und ein hypothetischer Verstoß höchstens ärgerlich und peinlich sein kann.

38

Technisch, das Ändern Ihrer Passphrase ist ausreichend, wenn Sie nicht auch glauben, dass Ihr (passwortgeschützter) privater Schlüssel ebenfalls durchgesickert ist.

Realistisch, Sie möchten möglicherweise nur Ihren SSH-Schlüssel durch einen neuen ersetzen. Sie sind so billig, dass sie genauso gut kostenlos sein können, und Sie müssen sich keine Gedanken mehr darüber machen, ob jemand eine Kopie des privaten Schlüssels mit der kompromittierten Passphrase hat, ist oder erhalten kann. Denken Sie daran, dass jemand, der eine Kopie Ihres Schlüssels abruft, die Sie Monate vor dem Durchsickern (und Ändern) Ihrer Passphrase gesichert haben, über die Passphrase weiterhin auf diesen Schlüssel zugreifen kann - genau wie heute unter einer neuen Passphrase.

Ändern Sie einfach Ihren Schlüssel. Es ist eine gute Praxis und Best Practices.

Edit :

@ David-Z hat vorgeschlagen, dass der Zeitaufwand für das Ersetzen des Schlüssels zu berücksichtigen ist. Ich behaupte, da es sich um Schlüssel handelt, ist dies auch vernachlässigbar, da Sie den Prozess automatisieren können. Das folgende Skript hat ungefähr 15 Minuten gedauert, um zu schreiben und zu testen:

#!/bin/bash

for i in $*
do
    cat newkey.pub | ssh -i oldkey [email protected]$i "cat >> ~/.ssh/authorized_keys"
    ssh -i newkey [email protected]$i "sed -n '/my_old_key/!p' < ~/.ssh/authorized_keys > ~/.ssh/authorized_keys_tmp && mv ~/.ssh/authorized_keys_tmp ~/.ssh/authorized_keys"
    if [ $? -eq 0 ]; then
       echo "Successful key replacement for $i"
    else
       echo "Key replacement failed for $i"
    fi
done

Dieses Skript wird:

  1. Verwenden Sie den alten Schlüssel, um den neuen Schlüssel an die entfernten autorisierten Schlüssel anzuhängen
  2. Verwenden Sie den neuen Schlüssel, um den alten Schlüssel von den entfernten autorisierten Schlüsseln zu entfernen

Das Schöne ist, dass das Entfernen des alten Schlüssels fehlschlägt, wenn beim Verschieben des neuen Schlüssels ein Fehler aufgetreten ist, da der neue Schlüssel verwendet wird, sodass Sie sich weniger wahrscheinlich in den Fuß schießen.

Sie müssen Ihre Passphrasen mit ssh-agent zwischenspeichern, damit Sie nicht zu diesen Verwendungen von ssh aufgefordert werden. Führen Sie es dann einfach mit den Servern aus, die Sie in der Befehlszeile aktualisieren möchten:

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-GWE6uxZxn9IS/agent.2016; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2017; export SSH_AGENT_PID;
echo Agent pid 2017;
$ ssh-add oldkey
Enter passphrase for oldkey: 
Identity added: oldkey (oldkey)
$ ssh-add newkey
Enter passphrase for newkey: 
Identity added: newkey (newkey)
$ ./chssh.sh server1 server2 server3
Successful key replacement for server1
Successful key replacement for server2
Successful key replacement for server3
$ 
48
gowenfawr

Das Ändern der Passphrase eines vorhandenen Schlüssels kann erfolgen mit:

ssh-keygen -p

... Sie sind jedoch noch nicht fertig. Sie müssen auch Kopien Ihrer alten Schlüssel in Betracht ziehen, diese müssen entfernt werden oder es sollte als kompromittiert behandelt werden. Denken Sie an Backups, aber auch an Daten auf Dateisystemen (Copy-on-Write-Dateisysteme wie ZFS und btrfs können eine Kopie irgendwo im Speicher-Backend aufbewahren).

Das Ändern Ihrer Passphrase ist eine kurzfristige Lösung, wenn Sie glauben, dass Ihre Schlüsseldatei durchgesickert sein kann. Wenn Sie nicht sicher sein können, ob alle Kopien Ihres alten privaten Schlüssels verschwunden sind, sollten Sie Ihre private Schlüsseldatei ändern.

Vergessen Sie nicht alle Dienste, an die auch Ihr öffentlicher Schlüssel angehängt ist. Das Auslaufen Ihres Schlüssels ist ein Problem. Ein Verstoß gegen andere Systeme wäre eine schlimme Nebenwirkung.

20
Lekensteyn