Site icon 8HOST.COM

Устранение неполадок 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.

Это случается, если:

Ресурс временно недоступен

Для работы 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, обратитесь за помощью к службе поддержки своего хостинг-провайдера.