Устранение неполадок SSH: ошибки оболочки
Linux, SSH, VPS | Комментировать запись
В первой статье этой серии вы узнали о том, как и в каких ситуациях вы можете попробовать исправить ошибки SSH. Остальные статьи расскажут, как определить и устранить следующие ошибки:
- Проблемы с подключением к серверу: здесь вы узнаете, как исправить ошибки подключения к серверу.
- Ошибки протокола: в этой статье вы узнаете, что делать, если сбрасываются клиентские соединения, клиент жалуется на шифрование или возникают проблемы с неизвестным или измененным удаленным хостом.
- Ошибки аутентификации: поможет устранить проблемы с парольной аутентификацией или сбросом SSH-ключей.
Установив соединение SSH, вы получаете доступ к удалённой среде оболочки. Это руководство поможет исправить самые распространённые ошибки, которые могут возникнуть на данном этапе.
Требования
- Убедитесь, что можете подключиться к виртуальному серверу через консоль.
- Проверьте панель на предмет текущих проблем, влияющих на работу и состояние сервера и гипервизора.
Основные ошибки
Не открывается домашний каталог
Иногда в системе нарушаются права собственности и доступа, и это вызывает проблемы с доступом к домашнему каталогу. Появляется ошибка:
Could not chdir to home directory /home/user: Permission denied
Error
Could not chdir to home directory /home/user: Input/output error
Error
Could not chdir to home directory /home/user: No such file or directory
Ошибки могут возникнуть, если домашний каталог не существует, неправильно указаны его права собственности или у пользователя нет доступа. Также это случается, если повреждена файловая система в домашнем каталоге.
Учётная запись недоступна
У некоторых пользователей системы отключена оболочка входа. При запросе оболочка не будет отвечать. Это вызовет ошибку:
This account is currently not available.
Это случается, если:
- Запрашиваемый пользователь не предназначен для рутинной работы, потому доступ к командной оболочке отключен.
- Пользовательской оболочке присвоен параметр nologin, true или false. В этом случае вы можете обновить пользовательскую оболочку.
Ресурс временно недоступен
Для работы SSH (как и любого другого сервиса) требуются системные ресурсы. Это означает, что SSH может не открыть среду оболочки, если сервер находится в условиях ограниченных ресурсов. Такие условия возникают при исчерпывании системной памяти, сбоях среды выполнения и т. п.
Вы получите такую ошибку:
ssh: connect to host example.com port 22: Resource temporarily unavailable
Проблемы с ресурсами довольно сложно устранить; во многом методы будут зависеть от типа вашего сервера.
Устранение неполадок
Проверка домашнего каталога
Чтобы проверить права доступа и собственности на домашний каталог, нужно подключиться к серверу через консоль как пользователь root. Убедитесь, что каталог /home существует (для этого можно использовать утилиту stat).
Если каталог существует в системе, убедитесь, что пользователь имеет права доступа (минимум 700) и права собственности на него.
Примечание: Имеются в виду права обычного пользователя, а не root.
Обновление оболочки
Откройте консоль, войдите как пользователь root или sudo.
Просмотрите файл /etc/passwd или запросите данные с помощью getent.
getent passwd user
В выводе команды найдите /usr/sbin/nologin:
user:x:1000:1000::/home/user:/usr/sbin/nologin
Чтобы обновить оболочку, используйте команду usermod и укажите рабочую оболочку, например, /bin/bash.
usermod -s /bin/bash user
Снова запустите getent.
user:x:1000:1000::/home/user:/bin/bash
Теперь попробуйте снова получить доступ к оболочке пользователя.
Устранение проблем с ресурсами
Устранение проблем с ресурсами – очень специфическая ситуация.
Если источником конфликта ресурсов являются сетевые запросы (например, атака на веб-приложение), вы можете отключить сервис или заблокировать трафик на брандмауэре с помощью веб-консоли. Так вы сможете оценить влияние ситуации, выбрать стратегию смягчения последствий, а также рассмотреть возможность масштабирования вашего приложения.
Если вы не можете войти в систему через веб-консоль, последний вариант –перезагрузить сервер. В зависимости от причины нехватки ресурса вы либо сразу попадёте в ту же среду, либо успеете получить доступ к консоли до того, как случится ошибка Unable to fork process при попытке запустить команду. После перезагрузки очень важно поймать момент и использовать веб-консоль или SSH-соединение с сервером, прежде чем они перестанут отвечать.
Читайте также: Основы работы с HAProxy и базовые понятия балансировки нагрузки
Если у вас не получается самостоятельно устранить ошибки оболочки SSH, обратитесь за помощью к службе поддержки своего хостинг-провайдера.
Tags: SSH