So sichern Sie den privaten SSH-Schlüssel unter Windows 10

So sichern Sie den privaten SSH-Schlüssel unter Windows 10

Ich verwende den neuen SSH-Client für Windows 10 und beim Versuch, eine Verbindung mit einem privaten Schlüssel herzustellen, erhalte ich diese Fehlermeldung:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'MyPair.pem' are too open. It is required that your
private key files are NOT accessible by others. This private key will
be ignored. Load key "MyPair.pem": bad permissions [email protected]:
Permission denied (publickey).

Ich weiß, dass ich unter Linux die Dateiberechtigungen festlegen müsste chmod 600, aber was verwenden Sie unter Windows 10?

Antwort1

Schlüssel dürfen nur für den Benutzer zugänglich sein, für den sie bestimmt sind, und nicht für andere Konten, Dienste oder Gruppen.

  • Benutzeroberfläche (GUI):
    [Datei]EigenschaftenSicherheitFortschrittlich
    1. Eigentümer:Ändern →Wählen Sie einen Auftraggeber aus→ Schlüsselbenutzer eingeben → OK
    2. Berechtigungseinträge:Alle entfernen, außer dem Benutzer des Schlüssels
    3. Setzen Sie den Schlüsselbenutzer aufVolle Kontrollewenn nicht bereits eingestellt
      1. Benutzer auswählen → Ändern → Vollzugriff → OK
        ODER
      2. Hinzufügen →Wählen Sie einen Auftraggeber aus→ Schlüsselbenutzer eingeben → OK
    4. OK → OK

  • Cmd:
    ::# Set Key File Variable:
        Set Key="%UserProfile%\.ssh\id_rsa"
    
    ::# Remove Inheritance:
        Icacls %Key% /c /t /Inheritance:d
    
    ::# Set Ownership to Owner:
        Icacls %Key% /c /t /Grant %UserName%:F
    
    ::# Remove All Users, except for Owner:
        Icacls %Key%  /c /t /Remove Administrator BUILTIN\Administrators BUILTIN Everyone System Users
    
    ::# Verify:
        Icacls %Key%
    
    ::# Remove Variable:
        set "Key="
    
    

  • PowerShell:
    # Set Key File Variable:
      New-Variable -Name Key -Value "$env:UserProfile\.ssh\id_rsa"
    
    # Remove Inheritance:
      Icacls $Key /c /t /Inheritance:d
    
    # Set Ownership to Owner:
      Icacls $Key /c /t /Grant $env:UserName:F
    
    # Remove All Users, except for Owner:
      Icacls $Key  /c /t /Remove Administrator BUILTIN\Administrators BUILTIN Everyone System Users
    
    # Verify:
      Icacls $Key
    
    # Remove Variable:
      Remove-Variable -Name Key
    
    

  • WSL/Cygwin:
    # Set Variables:
      # Key File:
        key="/path/to/key"
    
      # User:
        user="$(echo $USER)"
    
    # Set Ownership to Owner: (assumes user's name is also user's group name)
      chown $user:$user $key
    
    # Set Access Rights
      chmod 0600 $key
    
    # Verify
      ls -l $key
    
    

Antwort2

Unter Verwendung der Windows 10-Benutzeroberfläche sind hier einige zusätzliche Einzelheiten:

  1. Klicken Sie mit der rechten Maustaste auf die PEM-Datei, und wählen Sie „Eigenschaften“ > „Sicherheit“.
  2. Legen Sie als Besitzer den Benutzer des Schlüssels fest (also Sie).
  3. Berechtigungseinträge, entfernen Sie alle Benutzer, Gruppen, Dienste außer dem Benutzer des Schlüssels
  4. setze den Schlüsselbenutzer auf "Vollzugriff". So habe ich es gemacht:
  5. Vererbung deaktivieren. wenn ein Popup angezeigt wird, wählen Sie die Konvertierung in explizite Berechtigungen für diese Datei.
  6. Fügen Sie einen Auftraggeber hinzu, wählen Sie den Objekttyp „Benutzer“, und der Objektname ist der Benutzername des Schlüsselbesitzers (wenn Ihr Home-Verzeichnis beispielsweise der Ordner „c:\Benutzer\ben“ ist, geben Sie hier „ben“ ein). OK.
  7. Geben Sie diesem Benutzer Vollzugriff
  8. alle anderen löschen (authentifizierte Benutzer, System usw.)
  9. OK

Es ist wichtig, dass Sie den Besitzer auf den Benutzer des Schlüssels festlegen, bevor Sie die Vererbung deaktivieren.

Antwort3

Um Zeit zu sparen, ist es viel einfacher als die anderen Lösungen: Verschieben Sie die Datei einfach an einen „sicheren Ort“ auf Ihrem Laufwerk, beispielsweise den %userprofile%/.sshOrdner.

HINWEIS: Einige Leute sagten, dass es überall auf dem Laufwerk C: oder im Download-Ordner des Benutzers funktioniert, aber das habe ich nicht getestet.

verwandte Informationen