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 [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:\>
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:
Sleutels mogen alleen toegankelijk zijn voor de gebruiker voor wie ze bedoeld zijn en voor geen enkele andere account, dienst of groep.
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%
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
[email protected]: Permission denied (publickey).
ps. de permissies op het bestand zijn gewoon volledige toegang voor mezelf, en niets anders.