3

Как знают многие пользователи, я использую множество серверов Debian для личных, рабочих и добровольных организаций. В последнее время я вижу много сообщений в Superuser и IT Security об отключении паролей и просто об использовании аутентификации на основе ключей.

Я использую основанную на ключах аутентификацию для всего моего root доступа с моего персонального сервера, моего рабочего ноутбука и компьютера, который я использую большую часть времени вне работы. Однако, чтобы попасть на любом из серверов , не использующих WinSCP (где у меня есть мои ключи сохранены, по крайней мере , для моего ПК с Windows), я войти , как мою стандартную учетную запись пользователя, а затем su укоренить, используя очень длинный пароль.

На серверах, которыми я не управляю в рабочих целях, я храню эти ключи только в этих трех местах, в основном для резервного копирования. Я использую очень надежные пароли (на мой взгляд) и только PermitRootLogin withoutpassword пароля (мне нравится, когда файлы конфигурации позволяют мне использовать их в предложениях!). Когда я вхожу из другого места, я использую свою обычную учетную запись с надежным паролем, потому что у меня нет места, где я могу сохранить свои ключи и подтянуть, если мне нужно войти в систему с нового устройства.

Я вижу в этом два возможных решения:

  1. Хранение ключей в виде простого текста или в зашифрованном виде где-то удаленно, отключив все методы проверки подлинности на основе пароля на моих серверах. Если да, то где и как я могу хранить их надежно , что они не будут , вероятно , компрометации?
  2. Использование надежного пароля обычного пользователя и смена каждые 90 дней. Это хорошая практика, я уверен, но моя память действительно отстой. Я уверен, что в любом случае я бы продолжал использовать один и тот же пароль, просто по чистой привычке, что нарушает весь смысл этого.

Мне бы очень хотелось использовать метод 1, но я не знаю, что было бы лучше для такого большого количества серверов, и многие из них использовали разные пароли только для того, чтобы НАЧАТЬ вход в систему с нового места. Например, я регулярно использую свой мобильный телефон для туннелирования дома или для проверки состояния службы на удаленном сайте.

1 ответ1

1

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

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

Итак, смешав все эти ингредиенты, я получил два предложения:

Используйте менеджер конфигурации ИТ

Примеры: Puppet, Chef server или другие.

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

Мы используем сервер Chef для выполнения этих задач. У него есть функция, называемая пакетами данных, и очень интересный вид этих пакетов, называемых пакетами с зашифрованными данными, которые действительно позволяют хранить все ваши пароли, SSH-ключи и любые важные данные.

Шеф-архитектура

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

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

У него есть и обратная сторона. Если вы планируете получать доступ к своим серверам с мобильных устройств, таких как мобильные телефоны, планшеты и т.д., У вас, вероятно, не будет клиента Chef | Puppet | Put-your-favourites-handler-server-here-here .

Больше информации по этим вопросам:

Используйте зашифрованный локальный файловый менеджер

Есть некоторые программы, которые будут шифровать ваши ключи, независимо от того, являются ли они паролями, SSH-ключами или банковскими данными. Это имеет очевидный недостаток: для защиты ваших паролей вам нужен пароль (и вы, вероятно, захотите очень хороший). В любом случае, если вам нравится такой подход, вы можете сохранить свой зашифрованный ключ на флешке и взять с собой куда угодно.

У этого есть еще один потенциальный недостаток: вы можете потерять свою ручку, кто-то может ее украсть ... В этом случае он все еще зашифрован, но вам, вероятно, понадобится несколько чашек кофе, чтобы изменить SSH-ключ на всех ваших серверах и клиентах Debian, что, вероятно, заставит вас думать, что подход 1 является более масштабируемым.

В любом случае, я знаю только одно программное обеспечение такого рода, которое является достаточно безопасным для хранения всех ваших ключей (кстати: вы можете защитить свой файл паролей паролем (как уже упоминалось), файлом ключа или обоими).

Если вам нравится такой подход, вы, вероятно, хотите взглянуть на Keepass.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .