Генерация ключей SSH и GnuPG на удаленном сервере. Лучшие практики управления ключами

Генерация ключей SSH и GnuPG на удаленном сервере. Лучшие практики управления ключами

Я спрашиваю о передовой практике генерации, использования и управления ключами.

Несколько раз и по разным причинам я создавал ключи SSH и GnuPG, находясь под SSH-подключением к удаленному многопользовательскому серверу на работе (и к моему настольному компьютеру на работе из дома).

Пока я набирал пароли для своих новых сгенерированных ключей, меня осенило, что я не контролирую машину, на которой я вошел, или промежуточную ссылку. Я вроде как доверяю системным администраторам на работе, и SSH безопасен, но тем не менее... было странно отправлять свои новые пароли по ссылке таким образом.

Что вы думаете? Разумнее ли генерировать ключи (SSH, GnuPG или другие) локально, а затем передавать закрытые ключи по SSH, или я просто параноик по поводу всего этого?

Кроме того, если я прав, что я немного параноик, что вы думаете о том, где хранить закрытые ключи? Должны ли они все быть в одном физическом месте? Должен ли я активно использовать gpg-agentи ssh-agentвсегда?

Я работаю с двух отдельных машин, подключаясь к нескольким отдельным многопользовательским серверам, используя SSH для работы. Я подписываю коммиты Git с помощью GnuPG примерно из четырех мест (локально и удаленно).

Я работаю на машинах с Mac OS X (с MacPorts) и Linux (с Pkgsrc), но всегда в командной строке.

решение1

Что вы думаете? Разумнее ли генерировать ключи (SSH, GnuPG или другие) локально, а затем передавать закрытые ключи по SSH, или я просто параноик по поводу всего этого?

На самом деле это не имеет значения, по крайней мере, если системные администраторы не вмешивались в программный стек (но зачем им это делать, если они все равно завладели закрытыми ключами?).

Пока закрытый ключ находится на удаленной машине, естьнет разницыкак он туда попал. Системные администраторы могут иметь к нему доступ. Парольная фраза также только добавит дополнительных усилий для получения ключей, поскольку они также могут получить доступ к вашим входным данным.

Кроме того, если я прав, будучи немного параноидальным, что вы думаете о том, где хранить закрытые ключи? Должны ли они все быть в одном физическом месте? Должен ли я всегда активно использовать gpg-agent и ssh-agent?

Это зависит от ваших требований, уровня параноидности, доверия к системным администраторам и, наконец, использования ключа.

Если вам нужен частныйSSHключ на машине для доступа к некоторым сервисам (например, GitHub), просто сгенерируйте новый, который будет использоваться только на этой машине и приниматься только для аутентификации на необходимых сервисах/машинах.

КасательноOpenPGP/GnuPG, все зависит от ваших требований. Кажется, вы хотите подписывать программное обеспечение, и у меня такое чувство, что это происходит для вашей компании. Если ключ напрямую связан с компанией и создан только для этой цели, я не вижу никаких возражений против того, чтобы не иметь его на их машинах.

Если вам по каким-либо причинам нужно использовать свой собственный ключ, создайте подключ, который вы сможете по крайней мере ограничить подписью и отозвать в любое время без проблем. Использование подключей — это хорошая практика, в любом случае! Многие опытные пользователи OpenPGP на самом деле хранят свои закрытые первичные ключи в автономном режиме и используют их только для управления ключами.

Пересылка gpg-agentсокета кажется вполне возможной, и, конечно, сократит доступ системного администратора к ключу (у них больше нет доступа к полному ключу, но они могут только использовать его, по крайней мере, начиная с GnuPG 2.1, который удалилвсеоперации с закрытым ключом для агента).

Связанный контент