Benötige ich eine Passphrase für meinen SSH-RSA-Schlüssel?

41010
eckza

Bevor ich bei meinem derzeitigen Job (bei einem kleinen Unternehmen) angefangen habe, hatte mein Büro keine Firewall im Netzwerk, und buchstäblich wurde nichts gesichert. Nun, da ich mich als dedizierte Sysadmin / One-Man-IT-Abteilung angemeldet habe, habe ich alles getan, um das zu ändern. Nachdem er meinem Chef erklärt hatte, wie anfällig wir waren, erlaubte er mir, einige Backup-Server einzurichten, von denen sich einer in seinem Haus befindet.

Im Moment versuche ich, alles so einzustellen, dass ich tägliche Backups automatisieren kann. Ich plane rsync durch ssh zu verwenden, um dies zu tun. Aus Sicherheitsgründen und zur Vereinfachung der Automatisierung plante ich die Deaktivierung des ssh-Passwort-Logins und die Verwendung der rsa-Schlüsselüberprüfung. Wenn ich eine rsa-Passphrase gesetzt habe, müsste ich trotzdem ein Passwort eingeben, und das ist ein Problem.

Ist eine rsa-Passphrase nicht wesentlich sicherer? Ich bin die einzige Person in der Firma, die eine Ahnung von so etwas hat, also mache ich mir nicht zu viele Sorgen darüber, dass jemand ein Terminal an meinem Computer anruft (das ist sowieso immer gesperrt, wenn ich AFK bin.) ) und sshing auf einen der Backup-Server und Schäden verursachen. Ich bin immer noch sehr, sehr neu in der Welt der Systemadministration. Dies ist das erste Mal, dass ich so etwas mache, und ich möchte keine Lücken in der Sicherheitskonfiguration hinterlassen.

Auf den betreffenden Computern werden Ubuntu 10.10, SME Server und OSX 10.6 ausgeführt, wenn dies irgendwie einen Unterschied ausmacht.

64
Es sollte wirklich kein Sicherheitsverlust auftreten, wenn Sie keine Passphrase auf Ihrem Schlüssel haben. Die Aufrechterhaltung der Sicherheitsintegrität des Schlüssels an diesem Punkt wird zu einem integralen Bestandteil, denn wenn jemand den Schlüssel kopieren kann, gibt es keinen geheimen Schlüssel, der die Verwendung des Schlüssels verhindern würde. Chris Marisic vor 13 Jahren 3
Vielleicht ist es nur ich, aber ich habe keine Ahnung, was der obige Kommentar zu sagen versucht. underscore_d vor 8 Jahren 0
@underscore_d Er sagt im Wesentlichen: Keine Auswirkung auf die SSH-Sicherheit, Passwörter für Ihre Schlüssel zu haben oder nicht, ABER Sie müssen Ihre Schlüssel lokal schützen. Hartator vor 8 Jahren 2

3 Antworten auf die Frage

80
PriceChild

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 )


  1. 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.

  2. 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 sshund 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.

  3. 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.

Schön - genau das musste ich wissen. Ich danke dir sehr! eckza vor 13 Jahren 0
Kein Problem, nehmen Sie es nicht als erschöpfende Liste auf! :-) Dinge wie das regelmäßige Überprüfen von auth.log / secure etc. fallen mir ein. PriceChild vor 13 Jahren 3
Auditing, anstatt sich Sorgen zu machen, dass Ihre Passphrase gestohlen wird? Ehtesh Choudhury vor 10 Jahren 3
@shurane Beides tun! PriceChild vor 10 Jahren 3
4
Faheem Mitha

Sie können so etwas wie einen Schlüsselbund verwenden, um eine Passphrase weniger schmerzhaft zu machen. Dies ist etwas sicherer als die Verwendung eines kennwortlosen Login und kann in Kombination mit den anderen Antworten verwendet werden. PriceChilds Antwort war ziemlich gut.

-4
Majenko

Ich persönlich benutze DSA nicht RSA, hauptsächlich weil es das ist, was ich immer verwendet habe und ich weiß, dass es einfach funktioniert, aber die Theorie ist meiner Meinung nach dieselbe. Sie könnten dsamit rsaunten ersetzen .

Auf der Quelle:

$ ssh-keygen -t dsa 

Kopieren Sie dann den Inhalt der .ssh/id_dsa.pubDatei in .ssh/authorized_keysdas Benutzerkonto am Ziel.

Dann sollten Sie nur in der Lage sein, zwischen der Quelle und dem Ziel ohne Kennwörter zu wechseln.

Gibt es einen Grund, warum Sie sich für dsa für rsa einsetzen? Ich habe öfter das Gegenteil empfohlen. PriceChild vor 13 Jahren 1
@PriceChild: AFAIK, ihre Sicherheit ist mehr oder weniger gleichwertig (vorausgesetzt, die Schlüsselgröße ist ausreichend). Da ich selbst kein Kryptograf bin, vertraue ich der Entscheidung von OpenSSH und GnuPG, RSA als Standardschlüsselalgorithmus zu verwenden. Siehe auch [diese Frage] (http://superuser.com/questions/13164/what-is-better-for-gpg-keys-rsa-or-dsa). grawity vor 13 Jahren 0
Kein wirklicher Grund - hauptsächlich persönliche Entscheidung - das und die Tatsache, dass RSA kürzlich in gehackt wurde und sensibler Code gestohlen wurde - wie sich das auf RSA-Schlüssel bezieht Ich habe keine Ahnung (wer hat das?), Aber ich habe DSA immer verwendet, da es sicherer schien . Majenko vor 13 Jahren 0
Ich fürchte, der Hack auf "the company RSA" hat keinen Einfluss auf die Sicherheit des Algorithmus RSA. Besuchen Sie auch https://secure.wikimedia.org/wikipedia/en/wiki/RSA_Security - "RSA wurde nach dem Kryptographiealgorithmus von RSA Public Key benannt, der wiederum nach den Initialen seiner Miterfinder benannt wurde: Ron Rivest, Adi Shamir und Len Adleman. " PriceChild vor 13 Jahren 8
@ Matt: Das einzige, was sie gemeinsam haben, ist der Name. Der asymmetrische RSA-Krypto-Algorithmus ist reine Mathematik, es gibt keinen Weg, er könnte durch einen Einbruch in die Systeme einiger Unternehmen geschwächt werden. grawity vor 13 Jahren 6
@grawity Das ist gut zu wissen ... Ich habe bereits alles mit RSA eingerichtet - mit individuellen Schlüsseln für jedes System usw. - und ich hatte nicht wirklich Lust, alles von vorne zu wiederholen. eckza vor 13 Jahren 0