SSH#
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
This guide explains how to prepare your SSH server and client for use with the Nitrokey. For configuring PuTTY, see this guide:
На Nitrokey уже должны быть установлены ключи PGP, а локальная связка ключей GnuPG должна знать эти ключи.
Подготовка на клиента#
Убедитесь, что ~/.gnupg/gpg.conf содержит „use-agent“
Добавьте поддержку ssh в gnupg-agent, добавив „enable-ssh-support“ в ~/.gnupg/gpg-agent.conf
Если файл еще не существует, вы можете просто создать его.
Добавьте следующий код куда-нибудь в ваш ~/.bashrc (для fish shell посмотрите здесь)
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
Просто перезагрузите систему или попробуйте
pkill gpg-agent
и откройте новую командную строку, чтобы убедиться, что все установленоВ случае возникновения проблем, пожалуйста, попробуйте
gpg2 --card-status
при первом использовании, чтобы убедиться, что gpg-агент запускается
Подготовка к работе с сервером#
Вы можете создать файл authorized_keys, выполнив следующие действия
gpg2 --export-ssh-key keyID >> ~/authorized_keys
где
keyID
это идентификатор подключа, который используется для аутентификации на вашем Nitrokey. Nitrokey уже должен быть известен в локальной связке ключей GnuPG. Теперь вы можете добавить этот файл в authorized_keys удаленного сервера, и при ssh на сервер вас попросят ввести пин-код, а не кодовую фразу.
Устранение неполадок#
Если вас все еще просят ввести пароль, убедитесь, что
echo $SSH_AUTH_SOCK
возвращает что-то вроде „/run/user/1000/gnupg/S.gpg-agent.ssh“ или „/home/username/.gnupg/.S.gpg-agent.ssh“. К сожалению, в прошлом в GnuPG были внесены некоторые изменения, поэтому фактическое содержимое может отличаться в зависимости от системы и версии GnuPG. На некоторых системах в этой переменной может быть сохранено даже несколько папок. Вы должны адаптировать приведенный выше код в .bashrc так, чтобы переменная SSH_AUTH_SOCK была правильной. Если вы сомневаетесь, поищите „SSH_AUTH_SOCK“ в разделе
man gpg-agent
чтобы найти фактический код для вашей версии/системы.
Вы можете проверить, установлена ли у вас программа „pinentry“ через менеджер пакетов. Вам может понадобиться ` установить его в файле gpg-agent.conf <https://wiki.archlinux.org/index.php/GnuPG#pinentry>`__. Вам может понадобиться ` указать gpg-agent на правильный TTY <https://wiki.archlinux.org/index.php/GnuPG#Configure_pinentry_to_use_the_correct_TTY>`__.