it-swarm.com.de

Windows SSH: Berechtigungen für 'Private-Key' sind zu offen

Ich habe OpenSSH 7.6 in Windows 7 zu Testzwecken installiert. SSH-Client und -Server funktionieren einwandfrei, bis ich über dieses Fenster versucht habe, auf eine meiner AWS EC2-Boxen zuzugreifen.

Anscheinend muss ich die Berechtigung für die private Schlüsseldatei ändern. Dies kann einfach unter Unix/Linux mit dem Befehl chmod durchgeführt werden.

Was ist mit Fenstern?

private-key.ppm wird direkt von AWS kopiert und ich denke, die Erlaubnis auch.

C:\>ssh -V
OpenSSH_7.6p1, LibreSSL 2.5.3

C:\>ver

Microsoft Windows [Version 6.1.7601]

C:\>


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

C:\>
C:\>
C:\>ssh [email protected] -i private-key.ppm
Warning: Identity file private-key.ppm not accessible: No such file or directory.
[email protected]: Permission denied (publickey).

C:\>
50
Sabrina

Suchen Sie die Datei im Windows Explorer, klicken Sie mit der rechten Maustaste darauf und wählen Sie "Eigenschaften". Navigieren Sie zur Registerkarte "Sicherheit" und klicken Sie auf "Erweitert".

Ändern Sie den Eigentümer in Sie, deaktivieren Sie die Vererbung und löschen Sie alle Berechtigungen. Gewähren Sie sich dann "Vollzugriff" und speichern Sie die Berechtigungen. Jetzt beschwert sich SSH nicht mehr über zu offene Dateiberechtigungen.

Es sollte am Ende so aussehen:

 enter image description here

72
iBug

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

  • GUI:
    • [Datei] Eigenschaften - Sicherheit - Erweitert
      1. Setzen Sie Owner auf den Benutzer des Schlüssels
      2. Entfernen Sie alle Benutzer, Gruppen und Dienste, außer dem Benutzer des Schlüssels , unter Berechtigungseinträge
      3. Setzen Sie den Benutzer des Schlüssels auf Vollzugriff


  • CLI:

    :: Set Variable ::
    set key="C:\Path\to\key"
    
    :: Remove Inheritance ::
    cmd /c icacls %key% /c /t /inheritance:d
    
    :: Set Ownership to Owner ::
    cmd /c icacls %key% /c /t /grant %username%:F
    
    :: Remove All Users, except for Owner ::
    cmd /c icacls %key%  /c /t /remove Administrator BUILTIN\Administrators BUILTIN Everyone System Users
    
    :: Verify ::
    cmd /c icacls %key%
    
10
JW0914

Neben der Antwort von ibug. Da ich das Ubuntu-System in Windows verwendet habe, um den Befehl ssh auszuführen. Es hat immer noch nicht funktioniert. So tat ich

Sudo ssh ...

und dann hat es geklappt

5
Parv Sharma

Ich hatte das gleiche Problem und es scheint mit der Version von SSH zu tun zu haben, die Sie verwenden.

Wenn ich tippe

where ssh

Ich bekomme...

C:\Windows\System32\OpenSSH\ssh.exe
C:\Program Files\Git\usr\bin\ssh.exe

Wenn ich an beiden Standorten ssh -V ausführe, erhalte ich

OpenSSH_7.5p1, without OpenSSL
OpenSSH_7.3p1, OpenSSL 1.0.2k  26 Jan 2017

...beziehungsweise

Also, wenn ich ssh aus dem git/bin-Verzeichnis starte, funktioniert es einwandfrei und beschwert sich nicht über die Berechtigungen, aber wenn ich dieselbe Befehlszeile mit der früheren Installation von SSH starte, kehrt es damit zurück.

Load key "t:\\mykeys\\rich-private.ppk": invalid format
[email protected]: Permission denied (publickey).

ps. Die Berechtigungen für die Datei sind nur der volle Zugriff für mich und sonst nichts.

4
Rich S

Sie brauchen nur 2 Dinge:

1) Vererbung deaktivieren  enter image description here

2) Vererbte Berechtigungen in explizite Berechtigungen konvertieren  enter image description here

3) Benutzergruppe entfernen  enter image description here

4) Sie werden am Ende keine Benutzer haben, die auf private Dateien zugreifen können. Dies sollte ausreichen, um id_rsa hinzuzufügen.  enter image description here

3
Artur Mustafin