Jak wspomniał Roland w swojej odpowiedzi, jest to ostrzeżenie, że ssh-agent
nie rozumie formatu klucza publicznego i nawet wtedy klucz publiczny nie będzie używany lokalnie.
Mogę jednak również rozwinąć i odpowiedzieć, dlaczego jest to ostrzeżenie. Sprowadza się to po prostu do tego, że PuTTY Key Generator generuje dwa różne formaty kluczy publicznych w zależności od tego, co robisz w programie.
Uwaga: W całym moim wyjaśnieniu pliki kluczy, których będę używać / generować, będą miały nazwy id_rsa
z odpowiednimi rozszerzeniami. Ponadto, dla wygody kopiowania i wklejania, zakłada się, że folder nadrzędny kluczy to ~/.ssh/
. Dostosuj te szczegóły do swoich potrzeb.
Formaty
Link do odpowiedniej dokumentacji PuTTY
SSH-2
Podczas zapisywania klucza za pomocą Generatora kluczy PuTTY za pomocą przycisku „Zapisz klucz publiczny”, zostanie on zapisany w formacie określonym przez RFC 4716 .
Przykład:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "github-example-key"
AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYF
i2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcp
pY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3
oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEA
ip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9
tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw==
---- END SSH2 PUBLIC KEY ----
OpenSSH
Wbrew powszechnemu przekonaniu ten format nie jest zapisywany przez generator. Jednak jest generowany i wyświetlany w polu tekstowym zatytułowanym „Klucz publiczny do wklejania do pliku autoryzowanych kluczy OpenSSH”. Aby zapisać go jako plik, musisz ręcznie skopiować go z pola tekstowego i wkleić do nowego pliku tekstowego.
W przypadku klucza pokazanego powyżej wyglądałoby to następująco:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw== github-example-key
Format klucza jest prosty ssh-rsa <signature> <comment>
i można go utworzyć, zmieniając format pliku w formacie SSH-2.
Regeneracja kluczy publicznych
Jeśli korzystasz z ssh-agent
, prawdopodobnie będziesz mieć również dostęp do ssh-keygen
.
Jeśli masz swój klucz prywatny OpenSSH ( id_rsa
plik), możesz wygenerować plik klucza publicznego OpenSSH za pomocą:
ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub
Jeśli masz tylko klucz prywatny PUTTY ( id_rsa.ppk
plik), musisz go najpierw przekonwertować.
- Otwórz generator kluczy PuTTY
- Na pasku menu kliknij „Plik”> „Załaduj klucz prywatny”
- Wybierz swój
id_rsa.ppk
plik
- Na pasku menu kliknij „Konwersje”> „Eksportuj klucz OpenSSH”
- Zapisz plik jako
id_rsa
(bez rozszerzenia)
Teraz, gdy masz już klucz prywatny OpenSSH, możesz użyć ssh-keygen
narzędzia jak powyżej, aby wykonać manipulacje na kluczu.
Bonus: Format klucza publicznego zakodowany w PKCS # 1 PEM
Szczerze mówiąc, nie wiem, do czego służy ten klucz, ponieważ go nie potrzebowałem. Ale mam to w swoich notatkach, które zbierałem przez lata i dołączę to tutaj dla zdrowej dobroci. Plik będzie wyglądał następująco:
-----BEGIN RSA PUBLIC KEY-----
MIIBCAKCAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5Ew
gnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8D
Gm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48
ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8
hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D
6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElwIBJQ==
-----END RSA PUBLIC KEY-----
Ten plik można wygenerować przy użyciu klucza prywatnego OpenSSH (wygenerowanego w sekcji „Regenerowanie kluczy publicznych” powyżej) przy użyciu:
ssh-keygen -f ~/.ssh/id_rsa -y -e -m pem > ~/.ssh/id_rsa.pem
Alternatywnie możesz użyć klucza publicznego OpenSSH za pomocą:
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m pem > ~/.ssh/id_rsa.pem
Bibliografia: