Klucze SSH i Windows

Połączenie się do zdalnego serwera z Windowsa nie powinno sprawiać problemów. W teorii. Jeśli wygenerujemy parę kluczy przez PuttyGen napotkamy problem z niepoprawnym formatem. Dodatkowo musimy zapewnić odpowiednie dostępy do pliku.
Używając Windowsa i próbując połączyć się do serwera nową parą kluczy, otrzymałem poniższy komunikat. Nie byłem świadom tego, że do pliku klucza dostęp powinien mieć tylko użytkownik, który go wykorzystuje. W Windows domyślnie dostępy przyznawane są jeszcze Administratorom Systemu i kilku innym grupom. Jak się okazało, nie dało się tego zmienić ręcznie. Z pomocą przyszedł Stackoverflow.
// próba połączenia
PS C:\Users\Piszu> ssh piszu@1.2.3.4 -i C:\SSH_keys\piszu.ppk
Ubuntu 20.04.4 LTS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'C:\\SSH_keys\\piszu.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 "C:\\SSH_keys\\piszu.ppk": bad permissions
// rozwiązanie
# Create New Variable:
New-Variable -Name Key -Value "$env:C:\SSH_keys\piszu.ppk"
# Remove Inheritance:
Icacls $Key /c /t /Inheritance:d
# Set Ownership to Owner:
# Key's within $env:UserProfile:
Icacls $Key /c /t /Grant ${env:UserName}:F
# Key's outside of $env:UserProfile:
TakeOwn /F $Key
Icacls $Key /c /t /Grant:r ${env:UserName}:F
# Remove All Users, except for Owner:
Icacls $Key /c /t /Remove:g Administrator "Authenticated Users" BUILTIN\Administrators BUILTIN Everyone System Users
# Verify:
Icacls $Key
# Remove Variable:
Remove-Variable -Name Key
Drugim problemem, który mnie zaskoczył to format klucza. Do połączenia z konsoli potrzebny jest klucz w formacie openssh, natomiast PuttyGen domyślnie takiego nie generuje. Objawiało się to poniższym komunikatem. Kroki, które trzeba było wykonać to w PuttyGen wczytać private key, a następnie w opcji Conversions wybrać „Export OpenSSH and export your private key”.
PS C:\Users\Piszu> ssh piszu@1.2.3.4 -i C:\SSH_keys\piszu.ppk
Ubuntu 20.04.4 LTS
Load key "C:\\SSH_keys\\piszu.ppk": invalid format
Najnowsze komentarze