MAATRIX / Блог / Потерян SSH-ключ: как вернуть доступ

Потерян SSH-ключ: как вернуть доступ

Потерян SSH-ключ: как вернуть доступ

MAATRIX

Сменили ноутбук, переустановили систему или случайно удалили ~/.ssh — и сервер встречает вас коротким Permission denied (publickey). Приватный SSH-ключ утерян, а вход по паролю вы предусмотрительно отключили. Ситуация неприятная, но не тупиковая: доступ к серверу почти всегда возвращается через панель провайдера или rescue-режим. Ниже пошаговое решение проблемы — как вернуть доступ, когда потерян SSH-ключ, добавить новый и больше в эту ловушку не попадать.

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

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

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

Быстрое решение: добавить новый ключ снаружи

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

# на вашем компьютере
ssh-keygen -t ed25519 -C "new-2026"
# посмотреть публичную часть — её и добавим на сервер
cat ~/.ssh/id_ed25519.pub

Дальше нужно доставить содержимое .pub-файла в файл ~/.ssh/authorized_keys на сервере. Если у вас есть рабочая веб-консоль (VNC) в панели и вы помните пароль root — заходите через неё и добавляете ключ прямо изнутри. Если пароля тоже нет, помогает rescue-режим, описанный ниже. Ключевая идея: публичный ключ не секретен, его можно свободно копировать, и именно его мы прописываем серверу как разрешённый.

Через веб-консоль панели

Самый быстрый путь, если помните пароль root, — веб-консоль (VNC) в панели провайдера. Она даёт доступ к серверу напрямую, минуя SSH, как если бы вы сидели за монитором машины. Заходите под root и добавляете свой новый публичный ключ:

# внутри сервера через веб-консоль
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ssh-ed25519 AAAA...ваш_публичный_ключ new-2026" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

После этого пробуйте зайти по SSH с новым ключом — доступ вернётся. Обратите внимание на права: каталог .ssh должен быть 700, файл authorized_keys600, иначе SSH из соображений безопасности проигнорирует ключ и снова выдаст Permission denied. Это одна из самых частых причин, почему «ключ добавил, а всё равно не пускает».

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

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

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

Заказать VPS с консолью

Через rescue-режим

Если пароля root вы не помните и веб-консоль без него бесполезна, выручает rescue-режим. Провайдер загружает VPS с отдельной аварийной системы, из которой ваш диск виден как обычный раздел. Вы монтируете его и дописываете ключ в файл нужного пользователя:

# в rescue-системе
lsblk
mount /dev/vda1 /mnt
mkdir -p /mnt/root/.ssh
echo "ssh-ed25519 AAAA...ваш_публичный_ключ new-2026" >> /mnt/root/.ssh/authorized_keys
chmod 700 /mnt/root/.ssh && chmod 600 /mnt/root/.ssh/authorized_keys
umount /mnt

Затем выключаете rescue в панели и загружаете сервер как обычно — новый ключ уже на месте. Этот способ работает, даже когда вы забыли вообще все пароли, ведь вы правите диск снаружи. Учтите путь: для root это /mnt/root/.ssh, для обычного пользователя — /mnt/home/имя/.ssh, и владельца файла лучше выставить правильным, чтобы система приняла ключ.

Если ничего из этого недоступно

Бывает, что провайдер не даёт ни веб-консоли, ни rescue-режима — типично для самых базовых тарифов у некоторых хостеров. Тогда остаётся обращение в поддержку: у них есть доступ к гипервизору, и добавление ключа или запуск rescue — рутинная операция. В крайнем случае, если и это невозможно и бэкапов нет, дело доходит до переустановки системы.

Отсюда практический вывод: инструменты аварийного доступа — веб-консоль и rescue — должны быть у вас под рукой в панели, а не только у поддержки. Это базовое требование к нормальному VPS. Если у текущего провайдера их нет, потеря ключа превращается из десятиминутной задачи в переписку с саппортом на полдня, и это весомый повод присмотреться к другой площадке.

Стоит заранее понимать разницу между уровнями доступа, чтобы в критический момент не терять время. Веб-консоль работает всегда, пока сервер загружается и вы помните пароль хотя бы одного пользователя, — это самый быстрый путь. Rescue-режим не зависит от паролей вообще и выручает, когда система вовсе не стартует или все пароли забыты, но требует ручного монтирования диска. Обращение в поддержку — последний рубеж, медленный и зависящий от чужого расписания. Держа в голове эту лестницу, вы сразу выбираете верхнюю доступную ступень, а не перебираете способы вслепую, теряя минуты там, где сайт уже лежит и каждая из них на счету.

Почему пропадает доступ по ключу

Разберём типовые причины, чтобы понимать, что искать. Самая частая — потеря приватного ключа: переустановили ОС, не сделав бэкап ~/.ssh, сменили компьютер, случайно удалили каталог. Приватный ключ невосстановим: из публичной части его вычислить нельзя, так что «найти» старый не выйдет, только добавить новый.

Реже доступ ломается по другим причинам, даже если ключ на месте: сбитые права на ~/.ssh или authorized_keys, переполненный диск (SSH не может записать во временные файлы), повреждённый файл authorized_keys, изменения в конфиге sshd. Если ключ точно правильный, а вход не идёт, проверьте подробный лог подключения командой ssh -v — он покажет, на каком этапе происходит отказ.

Защита от повторной потери

Чтобы больше не оказаться запертым снаружи, заведите привычки, которые стоят пяти минут настройки. Держите резервный ключ: сгенерируйте второй, храните его отдельно (на другом устройстве или в защищённом хранилище) и пропишите оба в authorized_keys. Потеря одного тогда не отрезает доступ.

  • Делайте бэкап каталога ~/.ssh при смене или переустановке машины.
  • Добавляйте на сервер сразу несколько ключей — рабочий и аварийный.
  • Проверьте, что у вас есть доступ к панели с веб-консолью и rescue.
  • Не отключайте вход по паролю, пока не убедились, что вход по ключу работает.

У MAATRIX VPS идут с полноценной панелью, веб-консолью и rescue-режимом в локациях RU, US и UK, оплата из России картой или криптой. Это значит, что даже при полной потере ключа вы вернёте доступ сами за несколько минут, не завися от чужого расписания поддержки.

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

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

Заказать VPS с консолью

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

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

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

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

Можно ли восстановить утерянный приватный ключ?

Нет. Из публичного ключа приватный вычислить невозможно, а без бэкапа приватной части старый ключ восстановить нельзя. Решение — сгенерировать новую пару и добавить новый публичный ключ на сервер.

Как добавить ключ, если SSH не пускает?

В обход SSH: через веб-консоль (VNC) в панели, если помните пароль root, или через rescue-режим, смонтировав диск и дописав ключ в authorized_keys. Оба способа не требуют работающего SSH.

Почему ключ добавил, а всё равно Permission denied?

Чаще всего из-за прав: каталог .ssh должен быть 700, файл authorized_keys600, владелец — нужный пользователь. Неверные права заставляют SSH игнорировать ключ. Помогает и диагностика через ssh -v.

Как больше не терять доступ?

Держите второй, резервный ключ отдельно и пропишите оба на сервере. Делайте бэкап ~/.ssh при смене машины и убедитесь, что у провайдера доступны веб-консоль и rescue-режим.

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.