На смену популярному и простому telnet, который не обеспечивал безопасного соединения, пришел известный протокол SSH. Он позволил организовывать туннели, управлять устройствами через защищенные сессии. Возможность интеграции с PAM позволила модифицировать процесс аутентификации, учета учетных записей и управления сессиями. Например, добавлять двухфакторный ключ или ограничивать ресурсы для определенных пользовательских оболочек.
Однако по умолчанию сервер из коробки может быть недостаточно настроен для вашей инфраструктуры, ее требований к безопасности или функциональности. В этой статье мы подробно рассмотрим, что представляет собой каждая директива в конфигурационном файле SSH и как их использовать.
Как создать SSH-ключи?
Схема для Linux и Windows типична, но отличается лишь используемыми директориями. После перехода в терминал необходимо вызвать утилиту ssh-keygen, если не указывать параметров, то ключи будут создаваться с параметрами, по умолчанию ssh keygen rsa.
Для сервера ssh это будет директория /etc/ssh:
Алгоритм аутентификации будет RSA, длина ключа 3076, комментарий это username@host вашей машины. Желательно, при создании ключа указывать мастер пароль, он позволит хранить закрытый ключ зашифрованным. Однако если вы хотите обращаться через промежуточный сервер со своим ключом, на целевой, то не забудьте в конфигурации серверов разрешить перенаправление ssh agent. Так же можем использовать альтернативные алгоритмы, при создании укажите параметр –t и название нужного:
По желанию, можно так же указать длину ключа -b, количество раундов шифрования –a и комментарий с –C. Обратите внимание, что регистр в данном случае чувствительный. Чем больше вы выберете длину ключа и раундов шифрования, тем больше времени потребуется для его перебора, но также и ресурсов. Рекомендуется выбирать классические значения от 3072 бит в RSA, от 256 бит для Ed25519.
Чтобы просмотреть созданные хеши ключей укажите опцию –l и путь к ключу:
Данная функция будет полезна, когда необходимо сверить, при первом подключении к серверу значения отпечатков, во избежание MitM. Это важно, так как это единственный этап, на котором возможна подмена, при соединении.
Для экспорта публичных ключей можно воспользоваться командой:
Эти данные можно использовать для аутентификации на сторонних серверах, путем добавления их в папку authorized _keys.
Как поменять на SSH-ключах мастер пароль?
Если вы забыли свой мастер-ключ, к сожалению, мер восстановления его не предусмотрено. Поэтому необходимо будет создать новый и распространить. Для изменения, существующего необходимо указать опцию –p, -N с новым паролем и путь к файлу:
Как создать тихо создать SSH-ключ не отображая вывод?
Данный способ может потребоваться, когда необходимо с помощью скрипта без вывода создать нужные ключи:
В результате они будут лежать в папке пользователя.
Как удалить отпечатки SSH-ключей серверов?
Это может помочь, когда сервер решил поменять ключи, а свои записи в know_host мы не обновили. SSH-клиент просто запретит соединение и мы не сможем зайти на машину, для того чтобы сбросить записи пропишите команду:
Если для подключения был указан специфичный порт, то необходимо так же его пометить:
Подобная комбинация удалит нужные записи, после чего необходимо заново подключиться и сверить отпечатки ключей. Данная утилита позволяет эффективно управлять ключами, записями авторизованных серверов и организовывать работу сервиса. Утилита ssh keygen на Windows, так же актуальна
При нехватке собственных мощностей можно воспользоваться облачными серверами от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать: