webentwicklung-frage-antwort-db.com.de

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

Bevor ich bei meinem derzeitigen Job (in einem kleinen Unternehmen) anfing, 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 bei ihm zu Hause 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 hinterlassen.

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

69
eckza

Wie Sie wissen, besteht der Vorteil der Passphrase darin, dass jemand, der Ihren privaten Schlüssel lesen kann, diesen nicht verwenden kann.

Wenn jemand auf diesen privaten Schlüssel zugreifen kann, sollten Sie davon ausgehen, dass er Zugriff auf alle mit dem öffentlichen Schlüssel eingerichteten Computer hat bzw. 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. ( Die Biggie ist die zweite, lesen Sie, 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 ssh und 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 only 'rsync' kann mit deinem Schlüssel aufgerufen werden und only 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. Falls 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 Anmeldungen auf bestimmte Benutzer von bestimmten Hosts beschränkt werden.

    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.

84
PriceChild

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
Faheem Mitha