Запуск Продукты Bitnami Документацияimaxe CLI Блог Контакты
imaxe ssh доступ v1.0.0

SSH-доступ под полным контролем

Управляйте удалённым доступом к серверу, не редактируя файлы вручную: авторизованные ключи, ключи хоста, активные сессии и защита sshd — всё с проверкой конфигурации перед перезагрузкой.

$ imaxe ssh status
Версия
v1.0.0
Подкоманды
10
Конфигурация
/etc/imaxe/ssh.yml
Требуется root
да
Управляемый пользователь
ubuntu

Что делает этот модуль #

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

Модуль ssh объединяет в одной команде задачи удалённого доступа: управляет авторизованными ключами пользователя (добавить, вывести список, удалить), контролирует ключи хоста, которыми сервер представляется клиентам, показывает активные сессии и проверяет или повторно применяет защиту sshd, заданную в вашей конфигурации. Каждая операция, затрагивающая sshd, сначала проверяет конфигурацию (sshd -t), чтобы ошибочное изменение не оставило вас за дверью.

Перед началом

Держите открытой одну сессию, пока меняете ключи или перезапускаете sshd: если что-то пойдёт не так, вы останетесь внутри и сможете всё исправить. По умолчанию модуль работает с управляемым пользователем ubuntu; используйте --user, чтобы работать с другим.

Краткое руководствопошаговые задачи

Типовые задачи #

Выберите, что нужно сделать. В каждом рецепте команда уже написана — просто замените пользователя или ключ на свои и нажмите Копировать.

1

Просмотреть состояние SSH-доступа

Проверьте одним взглядом, что sshd активен и правильно настроен.

Подключитесь по SSH к серверу под пользователем ubuntu и выполните:

терминал
$ sudo imaxe ssh status

Нужно для скрипта? Добавьте --json и получите ту же информацию в машиночитаемом виде:

терминал
$ sudo imaxe ssh status --json
Вы увидите, активен ли sshd, на каком порту он слушает, и сводку применённой защиты.
2

Добавить или удалить авторизованный ключ

Дайте доступ новой машине или отзовите тот, что больше не используете.

Сначала посмотрите, какие ключи авторизованы сейчас для управляемого пользователя:

терминал
$ sudo imaxe ssh keys list

Добавьте публичный ключ, передав его как аргумент (или используйте -, чтобы прочитать его из стандартного ввода):

терминал
$ sudo imaxe ssh keys add "ssh-ed25519 AAAAC3Nz... ana@portatil" --comment "ana@portatil"

Больше не нужен? Удалите его по отпечатку или по комментарию:

терминал
$ sudo imaxe ssh keys remove "ana@portatil"
Файл authorized_keys пользователя обновлён. Проверьте результат командой keys list.
3

Пересоздать ключи хоста после клонирования

Обязательно после создания машины из AMI.

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

терминал
$ sudo imaxe ssh hostkeys regenerate --yes
Сервер получает собственную идентичность. Внимание: отпечаток меняется, поэтому при первом переподключении каждый клиент попросит принять его заново.
4

Проверить и повторно применить защиту

Убедитесь, что sshd по-прежнему настроен как надо, и исправьте, если нет.

Сравните текущую защиту с желаемой (той, что задаёт ваша конфигурация):

терминал
$ sudo imaxe ssh harden show

Есть расхождения? Повторно примените защиту из YAML и безопасно перезагрузите sshd:

терминал
$ sudo imaxe ssh harden reapply
Конфигурация возвращается к желаемому состоянию (без root по SSH, без паролей, только публичный ключ), а sshd перезагружается, не разрывая вашу сессию.
5

Просмотреть сессии и перезапустить sshd

Посмотрите, кто подключён, и применяйте изменения без страха остаться за дверью.

Выведите список активных SSH-сессий в данный момент:

терминал
$ sudo imaxe ssh sessions

Для применения изменений конфигурации предпочитайте reload (не разрывает соединения); используйте restart только если нужен полный перезапуск. Оба сначала проверяют конфигурацию:

терминал
$ sudo imaxe ssh reload
$ sudo imaxe ssh restart
Если конфигурация недействительна, операция останавливается до применения — ваш доступ остаётся нетронутым.
Осторожно, не заблокируйте себя

Перед перезапуском sshd или сменой порта держите открытой вторую, аварийную сессию. Если при переподключении появляется предупреждение о другом ключе хоста после hostkeys regenerate — это ожидаемо: примите новую идентичность.

Справочник CLIкоманды, флаги и файлы

Синопсис #

использование
imaxe ssh <subcomando> [<subcomando-anidado>] [argumentos] [flags]

Операции, которые читают или изменяют sshd, авторизованные ключи или ключи хоста, требуют привилегий root (используйте sudo). Группы keys, hostkeys и harden объединяют собственные вложенные подкоманды. Добавьте --json к status, sessions, keys list или harden show, чтобы получить вывод, пригодный для скриптинга.

Подкоманды #

ПодкомандаЧто делаетЗначимые флаги
statusСостояние sshd: активность, порт и сводка защиты.--json
keys listВыводит авторизованные ключи управляемого пользователя.--user, --json
keys addДобавляет публичный ключ (из аргумента или stdin).--user, --comment
keys removeУдаляет ключ по отпечатку или комментарию.--user
hostkeys regenerateПересоздаёт ключи хоста (критично после клонирования AMI; меняет отпечаток).--yes
sessionsВыводит активные SSH-сессии.--json
harden showПоказывает текущую защиту в сравнении с желаемой.--json
harden reapplyПовторно применяет защиту из YAML и перезагружает sshd.
restartПерезапускает sshd с предварительной проверкой конфигурации (sshd -t).
reloadПерезагружает sshd с предварительной проверкой конфигурации (sshd -t).

Аргументы и флаги #

Аргумент / ФлагТипПо умолчаниюОписание
<clave> обяз.stringВ keys add: публичный ключ или -, чтобы прочитать его из stdin.
<selector> обяз.stringВ keys remove: отпечаток (SHA256:...) или комментарий удаляемого ключа.
--userstringubuntuПользователь, чей authorized_keys просматривается или изменяется (в keys list/add/remove).
--commentstringВ keys add: комментарий, привязываемый к ключу для дальнейшей его идентификации.
--yesboolfalseВ hostkeys regenerate: подтверждает без запроса (меняет отпечаток, видимый клиентам).
--jsonboolfalseВ status, sessions, keys list и harden show: выдаёт результат в виде JSON в stdout.

Файлы и пути #

ПутьСодержимое
/etc/imaxe/ssh.ymlКонфигурация модуля: порт, политики входа (root, пароль, публичный ключ), разрешённые пользователи, управляемый пользователь и пересоздание ключей хоста.
/home/<usuario>/.ssh/authorized_keysАвторизованные публичные ключи управляемого пользователя, которые изменяют keys add/remove.
/etc/ssh/sshd_config.d/Фрагменты конфигурации sshd, где применяется защита.
/etc/ssh/ssh_host_*_keyКлючи хоста, идентифицирующие сервер, которые обновляет hostkeys regenerate.

Пример ssh.yml:

/etc/imaxe/ssh.yml
port: 22
permit_root_login: "no"
password_authentication: "no"
pubkey_authentication: "yes"
allow_users: []
managed_user: ubuntu
hostkeys:
  regenerate_on_first_boot: true

Коды возврата и логи #

Каждый запуск возвращает код, который можно проверить командой echo $? — удобно для цепочек в скриптах:

0OKОперация выполнена успешно.
1ERRОбщая неклассифицированная ошибка. Проверьте лог.
2USAGEНедопустимые или отсутствующие аргументы.
3CONFIGПроверка sshd -t не прошла; ничего не применено.
4NOTFOUNDКлюч или пользователь не найдены.
5RELOADИзменение применено, но перезагрузка sshd не удалась.

Следите за логом сервиса в реальном времени во время отладки:

терминал
$ sudo journalctl -u ssh -f
$ sudo imaxe ssh harden show --json

Устранение неполадок #

СимптомВероятная причинаРешение
Возникает CONFIG (код 3)Защита или ручное изменение оставили sshd с недопустимой конфигурацией.Просмотрите различия командой imaxe ssh harden show и исправьте; проверка не даёт применить сломанную конфигурацию.
При переподключении — предупреждение о другом host keyКлючи хоста были пересозданы (ожидаемо после клонирования AMI).Это нормально: примите новую идентичность на клиенте и обновите свой known_hosts.
keys add возвращает NOTFOUND (код 4)Пользователь, указанный в --user, не существует в системе.Проверьте имя пользователя или используйте управляемого по умолчанию (ubuntu).
Больше не могу войти по паролюpassword_authentication установлен в "no" из-за защиты.Это намеренно: входите по публичному ключу и управляйте ключами через imaxe ssh keys.

Застряли с модулем SSH?

Напишите нам, приложив вывод «imaxe <module> status --json», и мы быстро ответим.

Связаться с поддержкой