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

Możesz również polubić…

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.