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

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

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

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

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

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

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 \
  "mkdir -p ~/.ssh && chmod 700 ~/.ssh && \
   cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

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

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

Перед этим ОБЯЗАТЕЛЬНО проверьте, что вход по ключу работает в отдельном окне терминала — иначе можно закрыть себе доступ. Только затем правьте конфиг.

sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password
ChallengeResponseAuthentication no
sudo systemctl restart ssh

Опция PermitRootLogin prohibit-password разрешает root только по ключу (или запретите полностью значением no). После рестарта не закрывайте текущую сессию, пока не убедитесь, что новый вход работает как задумано.

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

Чтобы не вводить длинные команды, опишите сервер в ~/.ssh/config на своей машине:

Host maatrix
    HostName SERVER_IP
    User maat
    IdentityFile ~/.ssh/id_ed25519
    Port 22

Теперь достаточно набрать ssh maatrix. Passphrase от ключа можно закешировать в ssh-agent на время сессии, чтобы не вводить его при каждом подключении:

eval "$(ssh-agent -s)"
ssh-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-доступом

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

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

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

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

ed25519 или RSA?

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

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

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