SSH dla administracji serwerem#
Ten przewodnik wyjaśnia, jak przygotować serwer i klienta SSH do użycia z Nitrokey.
Nitrokey powinien mieć już zainstalowane klucze PGP, a lokalny pierścień kluczy GnuPG powinien znać te klucze.
Przygotowanie do pracy z klientem#
Upewnij się, że ~/.gnupg/gpg.conf zawiera «use-agent»
Dodaj obsługę ssh do gnupg-agenta, dodając «enable-ssh-support» do ~/.gnupg/gpg-agent.conf
Jeśli plik jeszcze nie istnieje, można go po prostu utworzyć.
Dodaj następujący kod gdzieś do swojego ~/.bashrc (dla rybiej łuski, spójrz ` tutaj <https://support.nitrokey.com/t/ssh-auth-with-fish-instead-of-bash/2206>`__)
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
Po prostu zrestartuj system lub spróbuj
pkill gpg-agent
i otwórz nową linię poleceń, aby upewnić się, że wszystko jest ustawioneW przypadku problemów, proszę spróbować
gpg2 --card-status
przy pierwszym użyciu, aby upewnić się, że gpg-agent zostanie uruchomiony.
Przygotowanie do pracy na serwerze#
Plik authorized_keys można wygenerować, uruchamiając opcję
gpg2 --export-ssh-key keyID >> ~/authorized_keys
gdzie
keyID
jest identyfikatorem klucza podrzędnego używanego do uwierzytelniania na Nitrokey. Nitrokey musi być już znany w lokalnym kluczu GnuPG. Możesz teraz dodać ten plik do authorized_keys zdalnego serwera’i kiedy ssh do serwera zostaniesz poproszony o pin zamiast frazy hasła.
Rozwiązywanie problemów#
Jeśli nadal jesteś proszony o podanie hasła, upewnij się, że
echo $SSH_AUTH_SOCK
zwraca coś w rodzaju «/run/user/1000/gnupg/S.gpg-agent.ssh» lub «/home/username/.gnupg/.S.gpg-agent.ssh». Niestety, w przeszłości w GnuPG wprowadzono pewne zmiany, tak że rzeczywista zawartość może się różnić w zależności od systemu i wersji GnuPG. W niektórych systemach w tej zmiennej może być zapisanych nawet kilka folderów. Musisz dostosować powyższy kod w .bashrc tak, aby zmienna SSH_AUTH_SOCK była poprawna. W razie wątpliwości poszukaj «SSH_AUTH_SOCK» w
man gpg-agent
aby znaleźć kod właściwy dla swojej wersji/systemu.
Możesz sprawdzić, czy masz «pinentry» program zainstalowany za pośrednictwem menedżera pakietów. Może być konieczne ` ustawienie go w gpg-agent.conf <https://wiki.archlinux.org/index.php/GnuPG#pinentry>`__ również. Może być konieczne ` wskazanie gpg-agentowi właściwego TTY <https://wiki.archlinux.org/index.php/GnuPG#Configure_pinentry_to_use_the_correct_TTY>`__.