MAATRIX / Блог / SSH-ключи и отключение входа по паролю

SSH-ключи и отключение входа по паролю

Блог MAATRIX · 2026-07-07

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

Почему ключи надёжнее паролей

['SSH-ключ — это пара из закрытой части (хранится у вас) и открытой (лежит на сервере). Сервер проверяет, что вы владеете закрытым ключом, не передавая по сети ничего, что можно подобрать перехватом или перебором. Даже 300-символьный пароль по стойкости уступает современному ключу, а запомнить такой пароль всё равно невозможно.', 'Пока включён вход по паролю, боты будут перебирать пары логин-пароль круглосуточно, засоряя логи и создавая нагрузку. Как только пароль отключён, брутфорс становится бессмысленным: сервер просто отказывает всем, кто не предъявил валидный ключ. На VPS MAATRIX root-доступ даёт полный контроль над sshd, поэтому настройка занимает пару минут.', 'Ключи удобны и в работе: с ними легко автоматизировать деплой, подключаться к нескольким серверам без ввода паролей и раздавать доступ команде, добавляя и отзывая отдельные ключи без смены общего пароля.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS с root-доступом

Шаг 1: генерация ключа

['Создавайте ключ на своём компьютере, а не на сервере — закрытая часть не должна покидать вашу машину. Рекомендуемый алгоритм — ed25519: он короткий, быстрый и криптографически стойкий.', '
ssh-keygen -t ed25519 -C "maat@laptop"
', 'Обязательно задайте пароль на сам ключ (passphrase) — тогда даже украденный файл ключа бесполезен без него. Это второй рубеж на случай, если ноутбук потеряют или скомпрометируют. Закрытый ключ (id_ed25519) никогда и никому не передавайте, не выкладывайте в репозитории и не копируйте в облака в открытом виде.', 'Если по каким-то причинам нужен RSA (совместимость со старым софтом), генерируйте его не короче 4096 бит: ssh-keygen -t rsa -b 4096. Для всего современного окружения ed25519 предпочтительнее.']

Шаг 2: перенос ключа на сервер

['Проще всего скопировать открытую часть командой ssh-copy-id — она сама создаст нужные каталоги и выставит права. Если её нет — добавьте ключ вручную.', '
ssh-copy-id -i ~/.ssh/id_ed25519.pub maat@SERVER_IP
', 'Ручной вариант, если ssh-copy-id недоступен:', '
cat ~/.ssh/id_ed25519.pub | ssh maat@SERVER_IP \\\n  "mkdir -p ~/.ssh && chmod 700 ~/.ssh && \\\n   cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
', 'После копирования сразу проверьте вход по ключу в новом окне терминала. Если сервер пускает без запроса пароля — ключ работает, и можно двигаться дальше. Права должны быть строго 700 на каталог и 600 на файл, иначе sshd проигнорирует ключ из соображений безопасности.']

Шаг 3: отключение пароля

['Перед этим ОБЯЗАТЕЛЬНО проверьте, что вход по ключу работает в отдельном окне терминала — иначе можно закрыть себе доступ. Только затем правьте конфиг.', '
sudo nano /etc/ssh/sshd_config
', '
PasswordAuthentication no\nPubkeyAuthentication yes\nPermitRootLogin prohibit-password\nChallengeResponseAuthentication no
', '
sudo systemctl restart ssh
', 'Опция PermitRootLogin prohibit-password разрешает root только по ключу (или запретите полностью значением no). После рестарта не закрывайте текущую сессию, пока не убедитесь, что новый вход работает как задумано.']

Удобство: SSH-config и агент

['Чтобы не вводить длинные команды, опишите сервер в ~/.ssh/config на своей машине:', '
Host maatrix\n    HostName SERVER_IP\n    User maat\n    IdentityFile ~/.ssh/id_ed25519\n    Port 22
', 'Теперь достаточно набрать ssh maatrix. Passphrase от ключа можно закешировать в ssh-agent на время сессии, чтобы не вводить его при каждом подключении:', '
eval "$(ssh-agent -s)"\nssh-add ~/.ssh/id_ed25519
', 'Для командной работы полезно завести отдельный ключ каждому участнику и добавлять их открытые части в authorized_keys — так доступ отзывается точечно, без смены общих секретов.']

Частые ошибки

['
  • Отключить пароль, не проверив вход по ключу — и потерять доступ к серверу.
  • Неверные права: каталог .ssh должен быть 700, файл authorized_keys — 600, иначе sshd их игнорирует.
  • Скопировать закрытый ключ на сервер вместо открытого — грубая ошибка, обнуляющая всю защиту.
  • Использовать один ключ без passphrase на всех машинах сразу.
  • Хранить закрытый ключ в публичном git-репозитории.
', 'Если вы всё же закрыли себе SSH, доступ спасёт консоль в панели MAATRIX: через неё можно вернуть PasswordAuthentication или добавить новый ключ. Держите резервный ключ на второй машине — это избавит от паники при потере основного.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS с root-доступом

Частые вопросы

Что делать, если потерял закрытый ключ?

Если есть доступ к серверу через панель или запасной ключ — просто добавьте новый открытый ключ в authorized_keys, а старый удалите. Поэтому полезно держать резервный ключ.

ed25519 или RSA?

Для новых серверов — ed25519: короче и быстрее при равной или большей стойкости. RSA берите только для совместимости со старым софтом, и не короче 4096 бит.

Можно ли вернуть вход по паролю?

Да, поменяйте PasswordAuthentication на yes и перезапустите ssh. Через панель MAATRIX также доступна консоль, если вы закрыли себе SSH.