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]Eigenschaften→Sicherheit→Fortschrittlich- Eigentümer:Ändern →Wählen Sie einen Auftraggeber aus→ Schlüsselbenutzer eingeben → OK
- Berechtigungseinträge:Alle entfernen, außer dem Benutzer des Schlüssels
- Setzen Sie den Schlüsselbenutzer aufVolle Kontrollewenn nicht bereits eingestellt
- Benutzer auswählen → Ändern → Vollzugriff → OK
ODER - Hinzufügen →Wählen Sie einen Auftraggeber aus→ Schlüsselbenutzer eingeben → OK
- Benutzer auswählen → Ändern → Vollzugriff → OK
- 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:
- Klicken Sie mit der rechten Maustaste auf die PEM-Datei, und wählen Sie „Eigenschaften“ > „Sicherheit“.
- Legen Sie als Besitzer den Benutzer des Schlüssels fest (also Sie).
- Berechtigungseinträge, entfernen Sie alle Benutzer, Gruppen, Dienste außer dem Benutzer des Schlüssels
- setze den Schlüsselbenutzer auf "Vollzugriff". So habe ich es gemacht:
- Vererbung deaktivieren. wenn ein Popup angezeigt wird, wählen Sie die Konvertierung in explizite Berechtigungen für diese Datei.
- 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.
- Geben Sie diesem Benutzer Vollzugriff
- alle anderen löschen (authentifizierte Benutzer, System usw.)
- 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%/.ssh
Ordner.
HINWEIS: Einige Leute sagten, dass es überall auf dem Laufwerk C: oder im Download-Ordner des Benutzers funktioniert, aber das habe ich nicht getestet.