Erstellen von SSH-Zertifikaten für SFTP mithilfe einer Zertifizierungsstelle

550
JustAGuy

Ich bin etwas verwirrt, was die Reihenfolge der Dinge angeht.

Das hatte ich mir vorgenommen:

1 - Generieren Sie den öffentlichen und privaten CA-Schlüssel.

2 - Verwenden Sie den CA Public Key mit dem SFTP-Server (TrustedUserCAKeys).

3 - Generieren Sie einen privaten + öffentlichen Schlüssel.

4 - Privaten Schlüssel des Benutzers mit CA signieren

5 - Stellen Sie eine Verbindung zum SFTP-Server mit dem privaten Schlüssel, dem Benutzernamen und dem Winscp her.

Sollte das funktionieren?

0

1 Antwort auf die Frage

1
grawity

Zertifizierungsstellen signieren den öffentlichen Schlüssel (erzeugen ein Zertifikat). Sie sehen niemals den privaten Schlüssel des Unterzeichners.

Abgesehen davon scheint der Arbeitsablauf außer für den WinSCP-Teil korrekt zu sein.

Bei den von TrustedUserCAKeys verwendeten Zertifikaten handelt es sich um ein von OpenSSH entwickeltes Format. Derzeit unterstützt keine andere Software diese Art der Zertifikatsauthentifizierung - hier ist der PuTTY-Wunschliste-Eintrag für sie. Da WinSCP PuTTY als SSH-Kern verwendet, hat es keine OpenSSH-Zertifikatsunterstützung und wird es erst nach PuTTY haben.

Ich bin davon wach. Das bedeutet, dass ich den Schlüssel in ein ppk-Format konvertieren muss, das WINSCP sofort anbietet, da es etwas anderes erkennt. JustAGuy vor 5 Jahren 0
Ich denke, ich muss es jetzt versuchen :) Prost. JustAGuy vor 5 Jahren 0
Ich spreche nicht über das OpenSSH-Schlüsselformat. Das Konvertieren des Schlüssels allein gibt Ihnen nichts, da der Client das _signed certificate_ immer noch nicht an den Server senden kann. grawity vor 5 Jahren 0
Das hört sich komisch an ... Wenn die Konvertierung unbrauchbar ist, warum bietet sie dann automatisch an? Besser noch, was würde es brauchen, um es richtig zu machen? JustAGuy vor 5 Jahren 0
Es ist möglich, den privaten Schlüssel zu konvertieren, weil Sie den privaten Schlüssel importieren. Dies ist eine _separate-Datei_ aus dem Zertifikat, das durch die Signatur erzeugt wird, und der Konvertierungsprozess ignoriert einfach den Teil "certificate", da WinSCP nicht weiß, was mit dem Zertifikat geschehen soll. Der Server weiß also nicht, dass das Schlüsselpaar signiert wurde. grawity vor 5 Jahren 0
Daher ist meine einzige Lösung unter Windows die Verwendung einer OpenSSH-basierten Software. Gibt es überhaupt so etwas? JustAGuy vor 5 Jahren 0
@JustAGuy Es gibt [Microsoft Build von OpenSSH für Windows] (https://github.com/PowerShell/Win32-OpenSSH). Martin Prikryl vor 5 Jahren 1
Ich bin ein bisschen verwirrt. Benötige ich nicht einen privaten Schlüssel, um die Kommunikation mit dem SFTP zu initiieren? Wenn ich nur den öffentlichen Schlüssel unterschreibe ... was geht dann? JustAGuy vor 5 Jahren 0
@JustAGuy: Beide werden auf unterschiedliche Weise gleichzeitig verwendet. (Sie müssen den gesamten öffentlichen Schlüssel senden, damit der Server weiß, wer Sie sind - daher muss das signierte Zertifikat ein Teil davon sein. Sie verwenden den privaten Schlüssel auch, um einen Beweis zu berechnen, dass Sie ihn tatsächlich besitzen. Der private Schlüssel jedoch wird nirgendwohin gesendet, nur in Berechnungen verwendet, daher ist es sinnlos, sie zu signieren.) Für weitere Informationen sollten Sie nach "Funktionsweise von SSL-Zertifikaten" suchen, da die Mechanismen nahezu identisch sind. grawity vor 5 Jahren 0