SSH Linux (OpenSSH)

SSH в Linux: SSH: Permission denied (publickey) после переноса домашнего каталога

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

После переноса домашнего каталога SSH перестал принимать прежний публичный ключ. Чаще всего sshd ищет authorized_keys в новом home, файл не перенесён или его путь недоступен из-за прав/монтирования.

В этой статье
  1. Что происходит и когда это важно
  2. Возможные причины и как их отличить
  3. Пошаговая диагностика и исправление
  4. Команды из инструкции с пояснениями
  5. Как проверить результат
  6. Если проблема не устранена

#Что происходит и когда это важно

Пароль может работать, но вход по ключу возвращает Permission denied (publickey). Клиент предлагает нужный ключ, а сервер его не принимает.

#Возможные причины и как их отличить

Возможная причинаКак узнатьЧто делать
Изменился путь домашнего каталогаДанные NSS указывают на новое место, а .ssh остался в старом.getent passwd и расположение файлов не совпадают.Перенести ключи штатным способом после резервной копии.
Нарушены права/владелецПри копировании права наследовались от другого тома.Журнал sshd содержит bad ownership/modes.Исправить только разрешения целевого пути.
Новый том не монтируется при входеСетевой или шифрованный home ещё недоступен sshd.findmnt не показывает нужный путь или он пуст.Проверить монтирование и доступность каталога.

#Пошаговая диагностика и исправление

  1. Сохраните способ доступаНе отключайте парольный вход, пока ключ не проверен, и оставьте консоль провайдера или уже работающий SSH-сеанс. Не копируйте личный закрытый ключ на сервер: серверу нужен только публичный ключ в authorized_keys.
  2. Определите настоящий homeНа сервере через консоль выполните getent passwd ИМЯ_ПОЛЬЗОВАТЕЛЯ и сравните домашний каталог с новым местом. Проверьте, что файловая система смонтирована (findmnt -T /НОВЫЙ/HOME). Если том не подключён, сначала восстановите его монтирование.
  3. Проверьте расположение и праваДля нужного home выполните namei -l /НОВЫЙ/HOME/.ssh/authorized_keys и ls -l этого файла, заменив путь реальным. Отсутствие файла отличается от ошибки прав. Если файл отсутствует, найдите резервную копию публичных ключей, не создавайте пустой файл с неизвестным содержимым.
  4. Проверьте фактический путь sshdАдминистратор с sudo sshd -T смотрит AuthorizedKeysFile, а при правилах Match уточняет их через sshd -T -C. На сервере может использоваться централизованный сервис ключей, и home вовсе не должен содержать authorized_keys.
  5. Сверьте предлагаемый ключ клиентаНа клиенте выполните ssh -v пользователь@сервер с действительным именем. Ищите Offering public key и далее Server accepts key или отказ. Никогда не публикуйте приватный ключ или весь вывод с личными адресами.
  6. Восстановите только требуемый файлЕсли в новом home действительно нет authorized_keys, администратор после сохранения старого home переносит публичные ключи, проверяет владельца и права только на .ssh и файл. Если исходный authorized_keys содержит несколько пользователей, не перезаписывайте его одним ключом.
  7. Проверьте вход до отключения запасных способовОткройте новый SSH-сеанс, убедитесь, что ключ принят и домашний каталог доступен. Лишь затем обсуждайте изменение парольной политики и закрытие временного доступа. При отказе не закрывайте прежний доступ, сохраните диагностическую строку из журнала и обратитесь к администратору.

#Команды из инструкции с пояснениями

Linux · Терминал (Bash)Команда
Проверка каталога home в системе.
getent passwd ИМЯ_ПОЛЬЗОВАТЕЛЯ
Linux · Терминал (Bash)Команда
Проверка монтирования нового home.
findmnt -T /НОВЫЙ/HOME
Linux · Терминал (Bash)Команда
Просмотр владельцев и прав по пути.
namei -l /НОВЫЙ/HOME/.ssh/authorized_keys
Linux · Терминал (Bash)Команда
На клиенте, заменить имена; показывает попытку выбора ключа.
ssh -v пользователь@сервер

#Как проверить результат

Новый сеанс открывается по тому же ключу, сервер читает верный authorized_keys из согласованного пути, права доступа не стали шире.

#Если проблема не устранена

Если журнал показывает другой механизм авторизации, выясняйте его настройку у администратора. Если новый home недоступен из-за NFS, не исправляйте это установкой sshd StrictModes no.

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.