- Устранение неполадок SSH: ошибки аутентификации
- Требования
- Основные ошибки
- Отказ в доступе (парольная аутентификация)
- Отказ в доступе (аутентификация на основе SSH-ключей)
- Консоль не поддерживает пароли
- Устранение неполадок
- Проверка доступных методов аутентификации
- Настройка прав доступа и собственности
- Проверка открытого и закрытого ключа
- OpenSSH 7 и устаревшие ключевые алгоритмы
- Заключение
- PuTTY password access denied [closed]
- 2 Answers 2
- Putty: access denied при вводе правильного пароля. Как исправить?
- Войдите, чтобы написать ответ
- Почему при подключении по ssh с ключем требует пароль?
Устранение неполадок SSH: ошибки аутентификации
В первой статье этой серии вы узнали о том, как и в каких ситуациях вы можете попробовать исправить ошибки SSH. Остальные статьи расскажут, как определить и устранить ошибки:
- Проблемы с подключением к серверу: здесь вы узнаете, как исправить ошибки подключения к серверу.
- Ошибки протокола: в этой статье вы узнаете, что делать, если сбрасываются клиентские соединения, клиент жалуется на шифрование или возникают проблемы с неизвестным или измененным удаленным хостом.
- Ошибки оболочки: это руководство поможет исправить ошибки ветвления процессов, валидации оболочки и доступа к домашнему каталогу.
После установления соединения и инициирования протокола система может проверить подключение пользователя к системе. SSH поддерживает множество механизмов аутентификации. В этом руководстве рассмотрены два наиболее распространенных механизма: парольная аутентификация и аутентификация на основе SSH-ключей.
Требования
- Убедитесь, что можете подключиться к виртуальному серверу через консоль.
- Проверьте панель на предмет текущих проблем, влияющих на работу и состояние сервера и гипервизора.
Основные ошибки
Отказ в доступе (парольная аутентификация)
Примечание: Если вы настроили на сервере SSH-ключи и отключили PasswordAuthentication, сервер не поддерживает паролей. Используйте SSH-ключ, чтобы подключиться к серверу.
Клиенты PuTTY и OpenSSH выдают такое сообщение:
root@111.111.111.111’s password:
Permission denied (publickey,password).
PuTTY Error output
root@111.111.111.111’s password:
Access denied
Server sent disconnect message
type 2 (protocol error):
«Too many authentication failures for root»
Это значит, что аутентификация прошла неудачно. Ошибка может быть вызвана рядом проблем. Вот несколько советов по устранению этой ошибки:
- Убедитесь, что вы используете правильное имя пользователя. В CoreOS используйте пользователя core. В FreeBSD используйте аккаунт пользователя freebsd.
- Парольная аутентификация пользователя может быть нарушена. Проверьте, поддерживает ли парольную аутентификацию веб-консоль сервера. Если она не поддерживает пароли, вам придется попытаться сбросить пароль или обратиться за помощью к службе поддержки, чтобы восстановить доступ.
- Убедитесь, что сервер поддерживает парольную аутентификацию.
Отказ в доступе (аутентификация на основе SSH-ключей)
Этот метод использует криптографические ключи для аутентификации пользователя.
Читайте также:
Вы можете получить такую ошибку:
Permission denied (publickey).
PuTTY Error output
Disconnected: No supported authentication methods available (server sent: publickey)
Многие наиболее распространенные проблемы, связанные с аутентификацией на основе ключей, вызваны неправильными правами доступа к файлам или правами собственности. Чтобы устранить проблему, попробуйте сделать следующее:
- Убедитесь, что файл authorized_keys и сам закрытый ключ имеют правильные права доступа и собственности.
- Убедитесь, что сервер поддерживает аутентификацию на основе ключей SSH.
- Убедитесь, что клиент SSH может получить закрытый ключ. Если вы используете PuTTY, убедитесь, что ключи SSH правильно настроены в сессии. Если вы используете OpenSSH, убедитесь, что у закрытого ключа SSH есть соответствующие привилегии.
- Убедитесь, что файл authorized_keys содержит правильный открытый ключ, и что открытый ключ добавлен на сервер.
- Возможно, вы используете закрытый ключ, который больше не поддерживается сервисом OpenSSH. Эта ошибка обычно затрагивает серверы OpenSSH 7+ при использовании закрытого DSA-ключа SSH. Обновите конфигурацию сервера.
Консоль не поддерживает пароли
Если вы не можете восстановить доступ к консоли, это может указывать на проблемы с файловой системой или конфигурацией в подсистеме PAM, которые влияют на механизм аутентификации. Эта ошибка также повлияет на попытки сбросить пароль root и войти в систему через консоль.
В консоли появляется форма аутентификации:
Ubuntu 14.04.4 LTS server tty1
server Login:
Password:
Но после ввода пароля появляется ошибка:
После сброса пароля вы получите:
You are required to change your password immediately (root enforced)
Changing password for root.
(Current) UNIX Password:
Повторно введите текущий пароль. Если соединение закроется, возможно, вы допустили ошибку, повторно вводя пароль. Повторите попытку.
При успешном завершении вам будет предложено дважды ввести новый пароль:
Enter new UNIX password:
Retype new UNIX password:
Однако если после повторного ввода правильного нового пароля сессия перезапустится (т.е. снова вернется форма для входа в систему) или появится сообщение об ошибке, это означает, что проблема в одном из файлов, в котором хранятся данные аутентификации.
В таком случае рекомендуется обратиться за помощью в службу поддержки хостинг-провайдера, подготовить сервер к повторному развёртыванию или исправить ошибки в настройках PAM.
Устранение неполадок
Проверка доступных методов аутентификации
Если вы используете подробный вывод или следите за логами SSH-клиента, убедитесь, что в сообщении, описывающем методы аутентификации, указаны password и/или publickey.
debug1: Authentications that can continue: publickey,password
Если вы не нашли в списке метод аутентификации, который хотите использовать, откройте файл /etc/ssh/sshd_config. В нём часто допускается ошибка: PasswordAuthentication имеет значение yes, а PermitRootLogin – no или without-password для пользователя root.
Исправьте эту ошибку, перезапустите сервис.
Настройка прав доступа и собственности
Сервер и клиент OpenSSH имеют строгие требования к привилегиям и правам собственности на файлы ключей.
Сервер и клиент OpenSSH должны иметь следующие права:
- ~./ssh – 700.
- ~./ssh должен принадлежать текущему аккаунту.
- ~/.ssh/authorized_keys – 600.
- ~/.ssh/authorized_keys должен принадлежать текущему аккаунту.
Кроме того, клиент должен также иметь такие права:
Эти изменения можно внести с помощью консоли.
Проверка открытого и закрытого ключа
Если вы забыли, какой закрытый ключ соответствует тому или иному открытому ключу, инструменты OpenSSH и PuTTY помогут вам сгенерировать открытый ключ на основе зарытого ключа. Полученный результат вы можете сравнить с файлом ~/.ssh/authorized_keys.
Чтобы восстановить открытый ключ на основе закрытого ключа в среде OpenSSH, используйте ssh-keygen и укажите путь к закрытому ключу.
ssh-keygen -y -f ~/.ssh/id_rsa
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCfBiMwCU1xoVVp0VbSYV3gTDV/jB57IHdILQ8kJ2622//Lmi4gDPlxA6HXVKq8odkGD/5MjqUw85X2rwEbhoBul74+LCToYJvvvBaDPCgg5z1icCKIJ1m/LJBrGNqPKCgqFWu0EH4/EFP2XIQqWqX1BZtJu/2YWrTr+xFOE/umoYmOd+t3dzQqMsv/2Aw+WmA/x/B9h+41WrobDgCExYNLPYcD0PO7fpsa8CcrZCo+TUWCe7MgQQCSM6WD4+PuYFpUWGw3ILTT51bOxoUhAo19U8B2QqxbMwZomzL1vIBhbUlbzyP/xgePTUhEXROTiTFx8W9yetDYLkfrQI8Q05+f
В среде PuTTY команда PuTTYgen.exe загружает интерфейс, в котором можно использовать опцию Load и импортировать закрытый ключ. PuTTY хранит такие файлы в формате .ppk (нужно знать место хранения файла).
Импортировав ключ, вы увидите окно с разделом Public key for pasting into OpenSSH authorized_keys file. В нём и будет искомый открытый ключ. Выделите текст и вставьте его в файл. Он сгенерирует открытый ключ.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCfBiMwCU1xoVVp0VbSYV3gTDV/jB57IHdILQ8kJ2622//Lmi4gDPlxA6HXVKq8odkGD/5MjqUw85X2rwEbhoBul74+LCToYJvvvBaDPCgg5z1icCKIJ1m/LJBrGNqPKCgqFWu0EH4/EFP2XIQqWqX1BZtJu/2YWrTr+xFOE/umoYmOd+t3dzQqMsv/2Aw+WmA/x/B9h+41WrobDgCExYNLPYcD0PO7fpsa8CcrZCo+TUWCe7MgQQCSM6WD4+PuYFpUWGw3ILTT51bOxoUhAo19U8B2QqxbMwZomzL1vIBhbUlbzyP/xgePTUhEXROTiTFx8W9yetDYLkfrQI8Q05+f imported-openssh-key
Можно проигнорировать комментарий после открытого ключа (imported-openssh-key).
В любом случае этот открытый ключ нужно добавить в файл ~/.ssh/authorized_keys.
OpenSSH 7 и устаревшие ключевые алгоритмы
В системах с OpenSSH 7 (FreeBSD и CoreOS по умолчанию) старые ключи DSA не поддерживаются.
Ключи ssh-dss считаются слабыми, вместо них рекомендуют использовать более надёжные современные алгоритмы.
Следовательно, в данном случае лучшим решением будет создать новые ключи и добавить их на хосты.
Однако в качестве обходного пути вы можете установить в PubkeyAcceptedKeyTypes значение +ssh-dss в файле /etc/ssh/sshd_config.
Заключение
Если у вас не получается самостоятельно настроить аутентификацию SSH, вы можете обратиться за помощью к службе поддержки своего хостинг-провайдера.
PuTTY password access denied [closed]
I try to log in with PuTTY as root, but when I type in the password it says access denied. Can someone please help me fix this?
What have you tried? Did you verify you’re connecting to the correct host? Is e password correct, or did you e.g. Change keyboard layouts? Can you log in using other users? Is SSH root login enabled or disabled?
As an addition to @DanielBeck’s questions: Is root login enabled on the server? What’s the /etc/ssh/sshd_config look like?
I agree something like «I can log in just fine to that host with the user/pass that I know, using the hypervisor» but closing this question is too far.
2 Answers 2
There are only four potential problem I can think of (most of which have been covered already):
- If you’re using an IP address, check it.
- If you’re using a host name, verify that it’s pointing to the right IP address and/or try the IP address instead.
- The fact that you have root access doesn’t mean you can actually log in as root. It only means that you have an account with root privileges (normally via sudo).
- If you’re not entering the username manually, make sure Connection → Data → Auto-login username is actually set to root.
- Check the password you’re entering.
- Verify that CapsLock is disabled.
- Verify that PuTTY uses the proper keyboard layout.
- Instead of Ctrl+V, try copying the password, then click inside the console and right click.
- If you use AltGr , make sure Terminal → Keyboard → AltGr acts as Comopse key isn’t checked.
- If none of the above works, clear the field Connection → Data → Auto-login username (assuming it is set) and enter the password in the username field to verify it gets entered correctly.
Some SSH servers can disable SSH logins for certain users and may even disable root logins by default. If you’re using Open SSH server, you have to edit /etc/ssh/sshd_config and make sure that it doesn’t contain one of the following lines:
PermitRootLogin no PermitRootLogin without-password
Both result in a simple Access denied. error, although they permit you to enter the password. The latter only allows root logins when authenticating using public keys.
To permit root logins, remove the corresponding line or replace it with the following:
See man sshd_config for further information.
Putty: access denied при вводе правильного пароля. Как исправить?
Здравствуйте! Не удаётся войти в ssh. Пишу root и вставлю пароль, далее пишет следующее «access denied».
Войти иногда получается с кaким-то разом, но всё же, когда мне удаётся войти, мне просят повторить пaроль, я копирую и вставляю, после чего PUTTY вылетает.
Всем спасибо за возможные проблемы.
Решил проблему введя пароль в ручную.
Подключаться с консоли и исправлять конфиг, ессно. А если сервер чужой — сказать об этом. Тыща причин:
— логин рутом запрещен (вообще я всегда так делаю — пусть киддисы пыжатся угадать пароль — они и с правильным не попадут никуда ;D )
— требуется ключ для логина
— логин возможен только с определенного IP или диапазона IP
Залогинился под mobile — заработало
Вообще-то нынче не принято логиниться под рутом.
Я удивляюсь что в принципе пускает, может быть никогда не пускает, а просто в какой-то момент вы логинитесь под другим юзером, а потом делаете su?
Ваши слова говорят о том, что вы сами не очень уверены что точно было и когда логинилось.
Сейчас ssh обычно настраивается так, что под рутом вообще нельзя заходить. Нужно чтобы был ваш персональный аккаунт, у которого есть доступ к su или sudo
То есть логинишься под собой, потом получаешь привилегии рута.
А логиниться сразу под рутом может быть просто отключено.
Была проблема с клиентами Putty, Kitty. В клиенте Linux всё норм. Дело было не в пароле, как я думал сначала.
Был невнимателен, оказывается при вводе логина у меня курсор стоял не в нулевой позиции, почему-то программа сама ставила символы до курсора перед вводом.
Из-за этого получается, что я пытался зайти под другим логином.
Хотя, может быть я не правильно настроил ssh-клиент под windows.