Ich möchte in der Lage sein, mit einer Gemalto .NET-Smartcard als Authentifizierungsmethode eine SSH-Verbindung zu meinem Computer herzustellen. Wie kann dies auf einem Fedora 13-Computer (oder einem generischen Red Hat-Computer) durchgeführt werden?
Dies sind die groben Schritte, die ich für notwendig halte:
- Bereitstellungszertifikat für die Smartcard (und möglicherweise eine Zertifizierungsstelle, um sie auszustellen?)
- Holen Sie sich das Zertifikat auf die Smartcard
- Konfigurieren Sie den SSH-Server so, dass die Smartcard-Authentifizierung zugelassen wird, und konfigurieren Sie ihn für die Verwendung eines bestimmten Zertifikats / einer bestimmten Zertifizierungsstelle
- Ein SSH-Client mit Smartcard-Unterstützung (zusätzliche Punkte für einen kostenlosen Windows-basierten Client)
Ich würde Kerberos empfehlen. MIT produziert einen krb5-Client und -Server.
vwduder, können Sie einen Smartcard-Leser und eine Quelle für FIPS-201-kompatible Karten empfehlen?
http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf
Ich habe eine Kopie auf meinem eigenen Server, aber ich bin derzeit auf diesem Stacktrace nicht populär genug, um sie mit Ihnen zu teilen. Das oben Genannte ist nur geringfügig weniger zuverlässig als unsere eigenen Server, so dass Sie es wahrscheinlich von ihnen erhalten können;)
Ich bin jetzt populär genug!
http://www.colliertech.org/state/FIPS-201-1-chng1.pdf
quelle
Bei Verwendung von RSA-Schlüsseln sind 1) und 2) trivial, da, wie wir in 3) sehen werden, das tatsächliche Zertifikat in diesem Zusammenhang irrelevant ist. Gehen Sie einfach zu cacert.org oder erstellen Sie ein selbstsigniertes Zertifikat, und schon sind Sie fertig.
Für 3) müssen Sie Ihren öffentlichen Schlüssel extrahieren und in $ HOME / .ssh / authorized_keys installieren. Achten Sie auf den Besitz und die Berechtigungen der Dateien! (700 für .ssh, 600 für autorisierte_Tasten). Von der hostweiten Authentifizierung mit öffentlichen Schlüsseln wird abgeraten, sie wird jedoch als Übung für neugierige Köpfe verwendet.
Zu 4) sollten Sie sich PuTTY SC ( http://www.joebar.ch/puttysc/ ) oder vorzugsweise PuTTY-CAC ( http://www.risacher.org/putty-cac/ ) ansehen, das sich verbessert PuTTY SC mit einem besseren Extraktionsalgorithmus für öffentliche Schlüssel und enthält auch die Kerberos-GSSAPI-Unterstützung aus dem Entwicklungszweig von PuTTY.
quelle
Ich habe ein Video gemacht, um zu zeigen, wie eine Smartcard mit einem Linux-Server unter Verwendung von PuttySC und SecureCRT verwendet wird . Sie können es hier ansehen: So SSH mit Ihrer Smart Card
Ich erkläre nicht, wie ein Zertifikat auf der Karte bereitgestellt wird, aber wenn Sie dies tun, denken Sie daran, dass der Administratorschlüssel der Karte mithilfe eines Kartenverwaltungssystems geändert werden sollte. Es wird für Sie viel einfacher, wenn Ihr Unternehmen Ihnen eine Smartcard zur Verfügung stellt, damit Sie sich nicht um diesen Teil kümmern müssen.
Sobald Sie die Karte bereitgestellt haben, müssen Sie den öffentlichen Schlüssel extrahieren und ihn dann zu ~ / .sshd / authorized_key hinzufügen.
Um eine Verbindung zum Server herzustellen, können Sie Tools wie PuttySC oder SecureCRT verwenden. Sie benötigen die PSKC # 11-Bibliothek für die Karte (entweder vom Smartcard-Hersteller oder von einer Open Source-Version). Konfigurieren Sie das SSH-Tool mit der Bibliothek. Es sollte es lesen und das Zertifikat finden können.
Wenn Sie sich authentifizieren, werden Sie vom Tool zur Eingabe der Smartcard-PIN aufgefordert.
quelle