Wie Sie wissen, besteht der Vorteil, den Ihnen die Passphrase bietet, darin, dass jemand, der Ihren privaten Schlüssel lesen kann, ihn nicht "verwenden" kann.
Wenn jemand auf diesen privaten Schlüssel zugreifen kann, sollten Sie davon ausgehen, dass er Zugriff (ed) / Kompromittierung auf alle Computer hat, die mit dem öffentlichen Schlüssel eingerichtet sind. Dinge wie .bash_history oder .ssh / config machen dies nur einfacher, selbst wenn Ihre .ssh / known_hosts verschleiert sind.
Wenn Sie kein Passwort auf Ihrem Schlüssel haben, ist dies nicht das Ende der Welt. Hier sind 3 Ideen, mit denen Sie sich trotz allem etwas besser schützen können. ( Der Biggie ist der zweite, lesen Sie das, wenn nichts anderes )
Verwenden Sie nicht einfach den gleichen Schlüssel für alle Computer und Benutzer. Generieren Sie jedem Benutzer auf jedem Rechner (der diese Art von Aufgaben ausführen muss) ein eigenes Schlüsselpaar. So behalten Sie die genaue Kontrolle darüber, was wo in der Lage ist.
Wenn Sie den Schlüssel zu Ihrer Authorized_keys-Datei hinzufügen, können Sie ihn sperren, um nur einen bestimmten Befehl ausführen zu können oder ihn nur von einem bestimmten Host aus zu verwenden.
Siehe
man ssh
und Suche nach Befehl = und von =Die Syntax sieht so aus:
from="1.2.3.4",command="/path/to/executable argument" ssh-rsa key name
dh knacken Sie 'rsync' dort ein und nur 'rsync' konnte von Ihrem Schlüssel und nur von der IP-Adresse 1.2.3.4 aus aufgerufen werden. Mehrere IPs können durch getrennt werden
,
. Hostnamen werden ebenfalls unterstützt.Eine andere Sache, die mir einfällt, ist die 'AllowUser'-Direktive in Ihrer sshd_config
AllowUsers
Auf dieses Schlüsselwort kann eine Liste von Benutzernamensmustern folgen, die durch Leerzeichen getrennt sind. Wenn angegeben, ist die Anmeldung nur für Benutzernamen zulässig, die einem der Muster entsprechen. '*' und '?' kann als Platzhalter in den Mustern verwendet werden. Nur Benutzernamen sind gültig. Eine numerische Benutzer-ID wird nicht erkannt. Standardmäßig ist die Anmeldung für alle Benutzer zulässig. Wenn das Muster die Form USER @ HOST hat, werden USER und HOST separat geprüft, wodurch Anmeldungen auf bestimmte Benutzer von bestimmten Hosts beschränkt werden.
Dies stellt im Wesentlichen sicher, dass sich der Benutzer nur von einem bestimmten Ort aus anmelden kann. (obwohl es auch Wildcards akzeptiert) Nicht alle Ihre Probleme lösen, aber es wird anderen zumindest schwerer machen.