Как установить и настроить SSH-ключи вместо пароля на VPS
Пароль к SSH можно подобрать перебором, и боты занимаются этим круглосуточно на каждом сервере с белым IP. Вход по SSH-ключам вместо пароля решает проблему в корне: подбирать становится нечего, потому что ключ невозможно угадать. Разберём, как настроить SSH-ключи вместо пароля на VPS: сгенерировать современную пару, перенести её на сервер и безопасно отключить парольный вход, не заперев себя снаружи. Это один из важнейших шагов защиты сервера.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Почему ключи надёжнее пароля
Разница принципиальная. Пароль это секрет, который вы вводите при каждом входе, и его можно перехватить, подсмотреть или подобрать перебором. SSH-ключ работает иначе: у вас есть пара из закрытого ключа, который хранится только на вашем компьютере, и открытого, который лежит на сервере. При входе сервер проверяет, что вы владеете закрытым ключом, но сам ключ по сети не передаётся. Подобрать закрытый ключ перебором практически невозможно — его длина и математика делают это нереальным.
Практический эффект нагляден: после перехода на ключи и отключения паролей поток попыток перебора в логах становится бесполезным для атакующих, потому что даже угадав имя пользователя, войти без ключа нельзя. Плюс это ещё и удобнее — не нужно вводить пароль при каждом подключении. Единственная ответственность, которая ложится на вас, — беречь закрытый ключ, потому что он и есть ваш доступ к серверу.
Генерация ключевой пары
Ключи генерируются на вашем локальном компьютере, а не на сервере — закрытый ключ должен оставаться у вас. Используйте современный алгоритм ed25519: он короткий, быстрый и криптографически надёжный, предпочтительнее устаревшего RSA.
ssh-keygen -t ed25519 -C "moy-vps"
Команда спросит, куда сохранить ключ (по умолчанию в ~/.ssh/id_ed25519) и предложит задать пароль на сам ключ — так называемую парольную фразу. Не пропускайте её: парольная фраза шифрует закрытый ключ, и если файл ключа украдут, без неё им не воспользуются. Это второй рубеж защиты. В результате появятся два файла: id_ed25519 (закрытый, храните в секрете) и id_ed25519.pub (открытый, его можно свободно копировать на серверы). Никогда и никому не передавайте закрытый ключ.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPSКопирование ключа на сервер
Открытый ключ нужно поместить на сервер в файл авторизованных ключей вашего пользователя. Самый простой способ — утилита ssh-copy-id, которая делает это за вас, подключившись по паролю в последний раз.
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@ВАШ_IP
Команда попросит пароль пользователя (пока он ещё работает) и добавит ваш открытый ключ в файл ~/.ssh/authorized_keys на сервере. Если ssh-copy-id недоступен, то же самое делается вручную: скопировать содержимое pub-файла и дописать его отдельной строкой в authorized_keys на сервере, следя за правами доступа. После этого проверьте, что вход по ключу работает.
ssh user@ВАШ_IP
Если вы задали парольную фразу, система спросит именно её, а не пароль пользователя. Успешный вход по ключу — обязательное условие перед следующим шагом. Не отключайте парольный вход, пока не убедитесь, что ключ работает.
Один и тот же открытый ключ можно спокойно разместить на нескольких серверах — это нормальная практика, и она не снижает безопасность, потому что закрытый ключ остаётся только у вас. Более того, удобно завести один надёжный ключ для всех своих серверов и защитить его сильной парольной фразой, чем плодить множество ключей. Если же вы работаете с нескольких устройств, у каждого может быть свой ключ, а на сервере в authorized_keys просто добавляются несколько открытых ключей, по одному на строку. Так вы заходите с ноутбука и с рабочей машины разными ключами, и при потере одного устройства достаточно убрать его ключ из файла, не трогая остальные.
Правильные права на файлы
SSH щепетильно относится к правам доступа и откажется использовать ключи, если права слишком открытые — это защита от того, чтобы чужой пользователь на сервере не прочитал ваши ключи. Убедитесь, что каталог и файл авторизованных ключей имеют строгие права.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Каталог .ssh должен быть доступен только владельцу (700), а файл authorized_keys — только на чтение и запись владельцу (600). Если права слишком свободные, SSH молча проигнорирует ключ, и вы будете недоумевать, почему вход по ключу не работает, хотя всё скопировано верно. Это одна из самых частых причин проблем с ключами, поэтому проверьте права в первую очередь, если что-то идёт не так. Владельцем файлов должен быть сам пользователь, а не root.
Отключение парольного входа
Теперь, убедившись, что вход по ключу работает, отключите вход по паролю — иначе смысл ключей теряется, ведь боты смогут по-прежнему перебирать пароль. Настройки сервера SSH лежат в файле /etc/ssh/sshd_config. Задайте следующие параметры.
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password
Первый параметр запрещает вход по паролю полностью. Второй явно разрешает вход по ключу. Третий, prohibit-password, разрешает root заходить только по ключу, но не по паролю — это разумный компромисс, оставляющий аварийный доступ через ключ, но закрывающий перебор пароля root. На современных системах настройки могут лежать в отдельных файлах внутри каталога sshd_config.d, проверьте, не переопределяет ли что-то ваши значения. После правки перезапустите сервис SSH.
systemctl restart ssh
Проверка и подстраховка от блокировки
Перезапуск SSH не разрывает текущую сессию, и это ваша страховка. Не закрывайте активное соединение сразу — вместо этого откройте новое окно терминала и попробуйте зайти заново. Если вход по ключу проходит, а по паролю справедливо отклоняется, всё настроено правильно. Только убедившись в этом во второй сессии, закрывайте первую.
ssh user@ВАШ_IP
Если новое подключение не проходит, у вас остаётся живая первая сессия, чтобы откатить настройки. Именно поэтому нельзя закрывать рабочее соединение до проверки — это защита от того, чтобы не запереть себя снаружи. Дополнительно можно ограничить, каким пользователям разрешён вход по SSH, параметром AllowUsers, и сменить порт SSH на нестандартный, чтобы снизить фоновый шум сканеров. Вход по ключам — фундамент защиты, который хорошо дополняется фаерволом UFW и fail2ban.
Развернуть сервер, на котором вы сразу настроите вход по ключам, удобно на VPS у MAATRIX: чистый белый IP, локация на выбор и оплата из России картой, СБП или криптой. Сервер поднимается за минуты — останется закрыть парольный вход и спать спокойно.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPSОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Почему ключи безопаснее пароля?
Закрытый ключ не передаётся по сети и практически не поддаётся перебору, в отличие от пароля. После отключения паролей подбирать становится нечего, и массовые атаки ботов теряют смысл.
Вход по ключу не работает, хотя ключ скопирован — в чём дело?
Чаще всего в правах доступа. Каталог .ssh должен быть 700, а authorized_keys — 600, владельцем должен быть сам пользователь. При слишком свободных правах SSH молча игнорирует ключ.
Нужна ли парольная фраза на ключ?
Да, она шифрует закрытый ключ и защищает его, если файл ключа украдут. Это второй рубеж: без парольной фразы похищенный ключ сразу даёт доступ к серверу.
Как не запереть себя при отключении паролей?
Не закрывайте текущую SSH-сессию. После правки sshd_config откройте новое соединение и проверьте вход по ключу. Только убедившись, что всё работает, закрывайте старую сессию.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.