Chcę wygenerować RSA
klucz GPG
i użyć go przy SSH
logowaniu. Czy to w ogóle możliwe? Jeśli tak to jak?
edycja: patrz odpowiedź @ wwerner, nie próbowałem, ale wydaje się, że jest to bieżące rozwiązanie (stan na 2018 r.)
ssh
gnupg
public-key
private-key
destan
źródło
źródło
Robię badania na ten temat i mogę dać ci kilka wskazówek, ale nie znalazłem jeszcze sposobu, aby to zadziałało.
Monkeysphere
Monkeysphere wydaje się bardzo interesującym projektem, ale nie udało mi się go skompilować pod Mac OS X bez zatykania mojego małego wolnego miejsca na dysku MacPorts.
Korzystanie z gpgkey2ssh
Pierwszym sposobem, który sugeruję, jest próba wygenerowania zgodnego wpisu uprawnionych kluczy na podstawie identyfikatora klucza (np. BFB2E5E3) za pomocą
Tutaj dodałem go do lokalnego hosta, ponieważ uruchomiłem serwer ssh w celach testowych, ale oczywiście powinieneś dodać to do hosta docelowego
~/.ssh/authorized_keys
. Następnie musisz powiedzieć SSH, aby używał prywatnej części tego klucza podczas uwierzytelniania, ale po prostu eksportowanie zbrojonej wersji pary kluczy ASCII nie działa:Korzystanie z gpg-agent
gpg-agent
ma opcję,--enable-ssh-support
która pozwala mu używać go jako zamiennika dla dobrze znanegossh-agent
. Czytałem o niektórych ludziach, którzy próbują dodaćssh-add
swój klucz GPG po uruchomieniu wgpg-agent
ten sposób:Ale nie sądzę, żeby to kiedykolwiek zadziałało. Strona gpg-agent mówi:
Wygląda więc na to, że
gpg-agent
należy to wykorzystać jako dodatkowy środek do ochrony kluczy SSH za pomocą szyfrowania GPG.Konwersja klucza GPG na OpenSSH
Jérôme Pouiller na swoim blogu pisze, że narzędzie Gpgsm może eksportować klucze i certyfikaty w PCSC12; mogą być następnie używane przez OpenSSH:
Ale nie znalazłem sposobu, aby
gpgsm
zaakceptować moje pary kluczy gpg.Inne rzeczy, których możesz spróbować
SSH ma
-I
opcję określenia biblioteki współużytkowanej PKCS # 11, którassh
powinna być używana do komunikacji z tokenem PKCS # 11 zapewniającym prywatny klucz RSA użytkownika.ssh-keygen
może używać klucza publicznego lub prywatnego RFC4716 / SSH2, kluczy publicznych PEM PKCS8 i kluczy publicznych PEM do generowania klucza prywatnego (lub publicznego) zgodnego z OpenSSH przy użyciu opcji-i
i-m
.Nadal nie mogę znaleźć sposobu, aby to wszystko połączyć.
źródło
gpgkey2ssh
został zastąpiony--export-ssh-key
wersją 2.1.11 (26.01.2016). Zajęło mi to trochę czasu, aby to zrozumieć. Wykorzystanie jestgpg --export-ssh-key BFB2E5E3
.Nie, nie są wymienne. Tak, do uwierzytelnienia można użyć kluczy GPG - pakiet Monkeysphere zawiera narzędzia do wyodrębnienia surowej pary kluczy RSA z certyfikatu GPG.
Twój certyfikat GPG będzie potrzebował podklucza z flagą możliwości „uwierzytelniania”. Aby utworzyć taki podklucz, uruchom raz:
Teraz dodaj swoje podklucze uwierzytelniania do ssh-agent :
Nieco istotne: ten wątek użytkowników gnupg .
źródło
Dzięki informacjom zawartym w odpowiedziach na to pytanie oraz przy pomocy listy mailingowej gnupg-users mogłem dowiedzieć się, jak używać mojego klucza GPG do uwierzytelniania SSH. Jak już wspomniał Claudio Floreani w swojej odpowiedzi, istnieje kilka możliwych metod, aby to zrobić.
Napisałem blog na temat niektórych możliwych rozwiązań: http://budts.be/weblog/2012/08/ssh-authentication-with-your-pgp-key
Podsumowując: Albo używasz GnuPG 2.1, który jest obecnie w fazie beta. Korzystając z tej wersji, możesz po prostu uruchomić gpg-agent z opcją --enable-ssh-support i dodać klucz dla twojego klucza GPG (lub podklucza) do ~ / .gnupg / sshcontrol.
Kiedy używasz bieżącej stabilnej wersji GnuPG (2.0.x), możesz użyć monkeysphere, aby dodać swój klucz do gpg-agent (ponownie, po uruchomieniu gpg-agent z opcją --enable-ssh-support).
Możliwe jest również użycie kluczy GNOME (lub nawet zwykłego agenta ssh) za pomocą monkeysphere. Jedynym problemem w tym przypadku jest to, że będziesz musiał ponownie dodać swój klucz przy ponownym logowaniu (do Gnome lub XFCE). Aby rozwiązać ten problem, możesz ręcznie wyeksportować swój klucz i przekonwertować go.
źródło