- Вопрос или проблема
- Сброс пароля
- Возможное сообщение
- Разрешение jeitnier
- Если все еще нет доступа (используйте только)
- Ответ или решение
- Проблема с доступом к DigitalOcean Droplet: Неверный пароль root
- Введение
- Описание проблемы
- Ошибки при попытке SSH доступа
- Возможные решения
- 1. Сброс пароля root
- 2. Проверка конфигурации SSH
- 3. Проверка прав пользователя
- 4. Проверка аутентификационного ключа
- 5. Проверка учётной записи
- Заключение
Вопрос или проблема
У меня есть дроплет Ubuntu 14.04 с PubkeyAuthentication
, установленным на yes
, и PermitRootLogin
, установленным на no. С момента его создания мой публичный ключ работал нормально. По неизвестной причине сегодня он не принимает мой публичный ключ.
Поэтому я вошел через консоль дроплета, чтобы узнать, что происходит (что сработало нормально с моим паролем root).
Сначала я сгенерировал мой публичный ключ заново, надеясь, что смогу просто ssh-copy-id
на сервер, но продолжал получать permission denied (publickey)
.
Когда это не сработало, я установил значения /etc/ssh/sshd_config
: PubkeyAuthentication
на no
и PermitRootLogin
на yes
, чтобы снова получить приглашение на своем клиенте MacbookPro.
[Частичный] Вывод ssh jeitnier@[ip] -v
:
debug1: Authentications that can continue:
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/jeitnier/.ssh/jeitnier_aws
debug1: Authentications that can continue:
debug1: Trying private key: /Users/jeitnier/.ssh/id_rsa
debug1: Trying private key: /Users/jeitnier/.ssh/id_dsa
debug1: Next authentication method: keyboard-interactive
debug1: Authentications that can continue:
debug1: Next authentication method: password
jeitnier@[ip]'s password:
Я ввожу точно такой же пароль, который использовал, чтобы войти в консоль, и получаю Permission denied, please try again.
Я проверил, что меня не заблокировали с помощью grep ^jeitnier /etc/shadow
.
Я никогда с этим не сталкивался раньше. Что мне попробовать дальше?
Попробуйте это:
Сброс пароля
Перейдите в панель управления вашего дроплета и выберите “Доступ -> Сброс пароля root”. Как говорится на странице, “Это выключит ваш дроплет, и новый пароль root будет установлен и отправлен вам по электронной почте.” Затем выполните ssh на root@ip с новым паролем. И не забудьте сразу изменить его, так как пароли, отправленные по электронной почте, не могут считаться безопасными.
Возможное сообщение
Если вы получите сообщение о потере вашей работы, не беспокойтесь. Вы не потеряете никаких данных, если отключите ваш дроплет.
Разрешение jeitnier
Когда вы редактировали /etc/ssh/sshd_config, вы выполняли visudo и добавили jeitnier ALL=(ALL:ALL) ALL под # User privilege specification? Также убедитесь, что вы добавили AllowUsers jeitnier в конец /etc/ssh/sshd_config.
Если все еще нет доступа (используйте только)
Если доступа по-прежнему нет, добавьте пользователя root в строку AllowUsers.
Ответ или решение
Проблема с доступом к DigitalOcean Droplet: Неверный пароль root
Введение
Вы столкнулись с проблемой доступа к вашему Droplet на хостинге DigitalOcean, где пароль root не принимается при попытке через SSH, в то время как доступ через консоль работает. В этой статье мы детально разберем возможные причины этой проблемы и предложим шаги для ее решения, основываясь на описанных вами действиях.
Описание проблемы
Ваша конфигурация SSH на Droplet настроена следующим образом:
PubkeyAuthentication
установлено вyes
PermitRootLogin
установлено вno
Из-за этого вы не можете войти в систему по вашему публичному ключу. Поскольку вы смогли получить доступ к консолю с использованием пароля root, вы изменили конфигурацию SSH, установив PubkeyAuthentication
в no
и PermitRootLogin
в yes
. Однако при попытке подключения с клиентского компьютера пароль, который прекрасно работает на консоли, не принимается.
Ошибки при попытке SSH доступа
Вы получили следующий вывод при выполнении команды ssh jeitnier@[ip] -v
:
debug1: Authentications that can continue:
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/jeitnier/.ssh/jeitnier_aws
debug1: Authentications that can continue:
debug1: Trying private key: /Users/jeitnier/.ssh/id_rsa
debug1: Trying private key: /Users/jeitnier/.ssh/id_dsa
debug1: Next authentication method: keyboard-interactive
debug1: Authentications that can continue:
debug1: Next authentication method: password
jeitnier@[ip]'s password:
Вы видите, что система не принимает ваш публичный ключ и переходит к keyboard-interactive
, а затем к вводу пароля.
Возможные решения
1. Сброс пароля root
Если вы можете войти через консоль, рекомендуется сбросить пароль root:
- Зайдите в панель управления вашего Droplet.
- Выберите «Доступ» -> «Сбросить пароль root».
- Это приведет к отключению вашего Droplet и отправит новый пароль на ваш email.
После получения нового пароля, попробуйте выполнить SSH-подключение с использованием root@[ip]
.
2. Проверка конфигурации SSH
После изменения параметров конфигурации SSH, убедитесь, что вы не сделали ошибок. Откройте файл /etc/ssh/sshd_config
и проверьте следующие строки:
- Убедитесь, что
PubkeyAuthentication
установлено вyes
. - Убедитесь, что
PermitRootLogin
установлено вno
. - Добавьте строку
AllowUsers jeitnier
в конец файла, чтобы явно разрешить доступ для пользователяjeitnier
.
Не забудьте перезапустить SSH-сервис командой:
sudo service ssh restart
3. Проверка прав пользователя
Используйте команду visudo
, чтобы проверить, что ваш пользователь jeitnier
имеет необходимые права. Убедитесь, что строка вида jeitnier ALL=(ALL:ALL) ALL
присутствует в секции # User privilege specification
. Это позволит вашему пользователю выполнять команды с привилегиями.
4. Проверка аутентификационного ключа
Если ваша публичная часть ключа была изменена или не загружена на сервер, выполните следующую команду, чтобы удостовериться, что ваш ключ присутствует:
cat ~/.ssh/authorized_keys
Если ваш новый публичный ключ отсутствует, добавьте его вручную.
5. Проверка учётной записи
Используйте следующую команду для проверки статуса вашей учётной записи:
grep ^jeitnier /etc/shadow
Убедитесь, что учётная запись не заблокирована и имеет правильный статус.
Заключение
Вышеуказанные шаги помогут вам устранить проблемы с доступом к вашему DigitalOcean Droplet. Верное управление конфигурацией SSH и соблюдение обычных практик безопасности, таких как использование публичного ключа и настройка прав доступа, являются ключевыми для поддержания безопасности вашей системы. Если указанные шаги не решат вашу проблему, рекомендуется обратиться в службу поддержки DigitalOcean для дальнейшей помощи.