Muss ich eine Passphrase für meinen SSH-RSA-Schlüssel haben?


71

Bevor ich meinen derzeitigen Job (in einem kleinen Unternehmen) antrat, hatte mein Büro keine Firewall im Netzwerk und es wurde buchstäblich nie etwas gesichert. Nachdem ich mich als Systemadministrator / Ein-Mann-IT-Abteilung angemeldet habe, habe ich alles getan, um dies zu ändern. Nachdem er meinem Chef erklärt hat, wie verletzlich wir sind, hat er mir gestattet, 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 über ssh zu verwenden, um dies zu tun. Aus Sicherheitsgründen und zur Vereinfachung der Automatisierung plante ich, die SSH-Kennwortanmeldung zu deaktivieren und nur die RSA-Schlüsselüberprüfung zu verwenden. Nun, wenn ich eine Rsa-Passphrase habe, muss ich immer noch ein Passwort eingeben, und das ist ein Problem.

Wird die Sicherheit durch die Verwendung einer Rsa-Passphrase erheblich beeinträchtigt? Ich bin die einzige Person in der Firma, die irgendeine Ahnung von so etwas hat, also mache ich mir keine Sorgen, dass jemand ein Terminal auf meinem Computer aufruft (der sowieso immer gesperrt ist, wenn ich AFK bin ) und ssh-in einen der Backup-Server und Schaden anrichten. Ich bin noch sehr, sehr neu in der Welt der Systemadministration, und dies ist das erste Mal, dass ich so etwas mache, und ich möchte keine Lücken in der Sicherheitseinstellung lassen.

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


5
Es sollte wirklich keinen Verlust an Sicherheit geben, wenn Sie keine Passphrase auf Ihrem Schlüssel haben. Die Aufrechterhaltung der Sicherheitsintegrität des Schlüssels wird zu diesem Zeitpunkt unabdingbar, da es keinen geheimen Schlüssel gibt, der ihn an der Verwendung hindert, wenn er kopiert werden kann.
Chris Marisic

1
Vielleicht bin es nur ich, aber ich habe keine Ahnung, was der obige Kommentar zu sagen versucht.
Underscore_d

3
@underscore_d Er sagt im Grunde genommen: Keine Auswirkung auf die SSH-Sicherheit, wenn Passphrasen für Ihre Schlüssel vorhanden sind oder nicht, ABER Sie müssen Ihre Schlüssel lokal sicher aufbewahren.
Hartator

Antworten:


89

Wie Sie wissen, besteht der Vorteil der Passphrase 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 auf alle mit dem öffentlichen Schlüssel eingerichteten Computer Zugriff hat (ed) oder diese gefährdet. Dinge wie .bash_history oder .ssh / config machen dies nur einfacher, selbst wenn Ihr .ssh / known_hosts verschleiert ist.

Ein Passwort auf Ihrem Schlüssel zu haben, ist noch lange nicht das Ende der Welt. Hier sind drei Ideen, die Ihnen helfen sollen, sich trotzdem ein wenig besser abzusichern. ( Der Biggie ist der zweite, lesen Sie das, wenn nichts anderes )


  1. Verwenden Sie nicht nur den gleichen Schlüssel für alle Computer und Benutzer. Generieren Sie für jeden Benutzer auf jedem Computer (auf dem dies erforderlich ist) ein eigenes Schlüsselpaar. Auf diese Weise können Sie genau steuern, was in der Lage ist, wo zu sshen.

  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 command = und from =

    Die Syntax sieht ungefähr so ​​aus:

    from="1.2.3.4",command="/path/to/executable argument" ssh-rsa key name

    Dh Pop 'rsync' drin und nur 'rsync' kann von Ihrem Schlüssel aufgerufen werden, und nur von der IP-Adresse 1.2.3.4. Mehrere IPs können durch getrennt werden ,. Hostnamen werden ebenfalls unterstützt.

  3. Eine andere Sache, die mir einfällt, ist die Anweisung 'AllowUser' in Ihrer sshd_config

    AllowUsers

    Diesem 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 mit einem der Muster übereinstimmen. '*' und '?' kann als Platzhalter in den Mustern verwendet werden. Es sind nur Benutzernamen 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 die Anmeldung auf bestimmte Benutzer von bestimmten Hosts beschränkt wird.

    Das stellt grundsätzlich sicher, dass sich der Benutzer nur von einem bestimmten Ort aus einloggen kann. (obwohl es auch Platzhalter akzeptiert) Es wird nicht alle Ihre Probleme lösen, aber es wird es zumindest für andere schwerer machen.


1
Schön - genau das musste ich wissen. Ich danke dir sehr!
Eckza

3
Kein Problem, nehmen Sie es einfach nicht als vollständige Liste! :-) Dinge wie das regelmäßige Überprüfen von auth.log / secure usw. fallen mir ein.
PriceChild

3
Also prüfen, anstatt sich Sorgen zu machen, dass Ihre Passphrase gestohlen wird?
Ehtesh Choudhury

3
@shurane Beides!
PriceChild

4

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 passwortlosen Logins und kann in Kombination mit den anderen Antworten hier verwendet werden. PriceChilds Antwort war ziemlich gut.


-4

Persönlich verwende ich DSA, nicht RSA, hauptsächlich, weil es das ist, was ich immer verwendet habe und ich weiß, dass es "nur funktioniert", aber die Theorie, die ich denke, ist die gleiche. 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 auf dem Ziel.

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


1
Gibt es einen Grund, warum Sie dsa gegenüber rsa befürworten? Ich habe öfter das Gegenteil empfohlen gesehen.
PriceChild

@ PriceChild: AFAIK, ihre Sicherheit ist mehr oder weniger gleichwertig (unter der Annahme einer ausreichenden Schlüsselgröße). Da ich selbst kein Kryptograf bin, vertraue ich der Entscheidung von OpenSSH und GnuPG, RSA als Standardschlüsselalgorithmus zu verwenden. Siehe auch diese Frage .
Grawity

Kein wirklicher Grund - hauptsächlich persönliche Wahl - dass und die Tatsache, dass RSA kürzlich in sensiblen Code gehackt und gestohlen wurde - wie das mit RSA-Schlüsseln zusammenhängt Ich habe keine Ahnung (wer tut das?), Aber ich habe DSA immer verwendet, da es sicherer schien .
Majenko

9
Ich fürchte, der Hack auf "the company RSA" hat keine Auswirkungen auf die Sicherheit des "algorithm RSA". Siehe auch secure.wikimedia.org/wikipedia/en/wiki/RSA_Security - "RSA wurde nach dem Kryptografiealgorithmus mit öffentlichem Schlüssel von RSA benannt, der wiederum nach den Initialen seiner Miterfinder benannt wurde: Ron Rivest, Adi Shamir und Len Adleman. "
PriceChild

6
@Matt: Das einzige, was sie gemeinsam haben, ist der Name. Der asymmetrische Krypto-Algorithmus von RSA ist reine Mathematik. Es gibt keine Möglichkeit, ihn durch einen Einbruch in die Systeme einiger Unternehmen zu schwächen.
Grawity
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.