Windows SSH: Toestemmingen voor 'private-key' zijn te open

Ik'heb OpenSSH 7.6 geïnstalleerd in Windows 7 voor testdoeleinden. SSH client & server werken prima totdat ik probeerde toegang te krijgen tot een van mijn AWS EC2 boxen vanaf dit windows.

Het lijkt erop dat ik de rechten op het private key bestand moet veranderen. Dit kan gemakkelijk worden gedaan op unix/linux met chmod commando.

Hoe zit het met Windows?

private-key.ppm is rechtstreeks gekopieerd van AWS en ik denk de toestemming ook.

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

C:\>ver

Microsoft Windows [Version 6.1.7601]

C:\>

C:\>ssh ubuntu@192.168.0.1 -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
ubuntu@192.168.0.1: Permission denied (publickey).

C:\>
C:\>
C:\>ssh ubuntu@192.168.0.1 -i private-key.ppm
Warning: Identity file private-key.ppm not accessible: No such file or directory.
ubuntu@192.168.0.1: Permission denied (publickey).

C:\>

U lokaliseert het bestand in Windows Verkenner, klikt er met de rechtermuisknop op en selecteert vervolgens "Eigenschappen". Navigeer naar het tabblad "Beveiliging" en klik op "Geavanceerd".

Verander de eigenaar in uzelf, schakel overerving uit en verwijder alle machtigingen. Geef jezelf dan "Volledige controle" en sla de rechten op. Nu zal SSH niet meer klagen over te open bestandstoestemmingen.

Het zou er uiteindelijk zo uit moeten zien:

Commentaren (8)

Sleutels mogen alleen toegankelijk zijn voor de gebruiker voor wie ze bedoeld zijn en voor geen enkele andere account, dienst of groep.

  • GUI:
    • [Bestand] Eigenschappen - Beveiliging - Geavanceerd
      1. Stel Owner in op de gebruiker van de sleutel's
      2. Verwijder alle gebruikers, groepen en diensten, uitgezonderd de gebruiker van de sleutel's, onder Permission Entries
      3. Stel de gebruiker van de sleutel in op Volledige controle_


  • CLI:

     :: Variabele instellen ::
     set key="C:\Pathtokey"
    
     :: Inheritance verwijderen ::
     cmd /c icacls %key% /c /t /inheritance:d
    
     :: Stel Eigendom in op Eigenaar ::
     cmd /c icacls %key% /c /t /grant %username%:F
    
     :: Verwijder alle gebruikers, behalve de eigenaar ::
     cmd /c icacls %key% /c /t /remove Beheerder "Geauthenticeerde gebruikers" BUILTIN Iedereen Systeemgebruikers BUILTIN
    
     :: Verifieer ::
     cmd /c icacls %key%
Commentaren (8)

Ik had hetzelfde probleem, en het lijkt te maken te hebben met de versie van SSH die je gebruikt.

Als ik typ

where ssh

krijg ik...

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

Als ik ssh -V op beide locaties uitvoer, krijg ik

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

...respectievelijk

Dus, als ik ssh uitvoer vanuit de git/bin directory, werkt het prima en klaagt het niet over de rechten, maar als ik dezelfde commandoregel uitvoer, met de vorige installatie van SSH, komt het terug met dit.

Load key "t:\\mykeys\\rich-private.ppk": invalid format
banana@127.0.0.127: Permission denied (publickey).

ps. de permissies op het bestand zijn gewoon volledige toegang voor mezelf, en niets anders.

Commentaren (4)