Вход в систему на сервере ssh: доступ запрещен, попробуйте еще раз

9

Я пытаюсь войти на свой ssh-сервер, используя имя пользователя и пароль, но я получаю эту ошибку после ввода правильного пароля:

Permission denied, please try again.

Я могу войти в систему, используя pubkey на другом компьютере, но я НЕ отключил обычную аутентификацию по паролю. Единственное, что я отключил, это root-логины.

Вот мой файл sshd_config:

# Пакет сгенерированный файл конфигурации
# Для получения подробной информации см. Справочную страницу sshd_config (5)

# Какие порты, IP-адреса и протоколы мы слушаем
Порт 22
# Используйте эти опции, чтобы ограничить, какие интерфейсы / протоколы sshd будет привязывать к
#ListenAddress ::
#ListenAddress 0.0.0.0
Протокол 2
# HostKeys для протокола версии 2
HostKey / etc / ssh / ssh_host_rsa_key
HostKey / etc / ssh / ssh_host_dsa_key
HostKey / etc / ssh / ssh_host_ecdsa_key
#Privilege Разделение включено для безопасности
UsePrivilegeSeparation yes

# Время жизни и размер временного ключа сервера версии 1
KeyRegenerationInterval 3600
ServerKeyBits 768

# Логирование
SyslogFacility AUTH
LogLevel INFO

# Аутентификация:
LoginGraceTime 120
PermitRootLogin нет
StrictModes да

RSAАутентификация да
PubkeyAuthentication да
#AuthorizedKeysFile% h / .ssh / authorized_keys

# Не читайте пользовательские файлы ~ / .rhosts и ~ / .shosts
IgnoreRhosts да
# Для этого вам также понадобятся ключи хоста в / etc / ssh_known_hosts

RhostsRSAАутентификация нет
# похоже на протокол версии 2
HostbasedAuthentication нет
# Раскомментируйте, если вы не доверяете ~ / .ssh / known_hosts для RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# Чтобы включить пустые пароли, измените на yes (НЕ РЕКОМЕНДУЕТСЯ)
PermitEmptyPasswords нет

# Измените на yes, чтобы включить пароли запроса-ответа (остерегайтесь проблем с
# некоторые модули PAM и темы)
ChallengeResponseAuthentication no

# Измените на нет, чтобы отключить пароли в виде открытого текста.
ПарольАутентификация да

# Параметры Kerberos 
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# Опции GSSAPI
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Пересылка да
X11DisplayOffset 10
PrintMotd нет
РаспечататьLastLog да
TCPKeepAlive да
#UseLogin нет

#MaxStartups 10:30:60 
#Banner /etc/issue.net

# Разрешить клиенту передавать переменные окружения локали
AcceptEnv LANG LC_ *

Подсистема sftp / usr / lib / openssh / sftp-server

# Установите «да» для включения аутентификации PAM, обработки учетной записи,
# и обработка сессии. Если это включено, аутентификация PAM будет
# быть разрешенным через ChallengeResponseAuthentication и
# PasswordAuthentication. В зависимости от вашей конфигурации PAM,
# PAM-аутентификация через ChallengeResponseAuthentication может обойтись
# настройка «PermitRootLogin без пароля».
# Если вы просто хотите, чтобы учетная запись PAM и сеансовые проверки выполнялись без
# Аутентификация PAM, затем включите это, но установите PasswordAuthentication
# и ChallengeResponseAuthentication to «нет».
UsePAM да 
IgnoreUserKnownHosts no
ПарольАутентификация да

Я добавил последние 2 строки в последней попытке заставить его работать. (У меня они есть на моем другом VPS, и они там работают)

Вот список каталога ~ / .ssh / моего пользователя:

ls -la /home/skerit/.ssh
всего 16
drwx ------ 2 скерит скерит 4096 2011-06-25 15:11.
drwxr-xr-x 4 скерит скерит 4096 2011-07-07 21:05 ..
-rw-r - r-- 1 скерит скерит 1882 2011-06-25 15:15 author_keys
-rw-r - r-- 1 скерит скерит 884 2011-06-23 22:59 known_hosts 

Это вывод / usr / sbin / sshd -d:

debug1: userauth-запрос для пользователя, служба skerit, метод ssh-подключения
debug1: попытка 0 неудач 0
debug1: PAM: инициализация "скерит"
debug1: PAM: установка PAM_RHOST в значение "82.197.70.70"
debug1: PAM: установка PAM_TTY на «ssh»
debug1: userauth-запрос для пользователя, сервис скерит ssh-метод подключения publickey
debug1: ошибка попытки 1 0
debug1: проверить, приемлемы ли pkalg / pkblob
debug1: проверка файла черного списка /usr/share/ssh/blacklist.RSA-2048
debug1: проверка файла черного списка /etc/ssh/blacklist.RSA-2048
debug1: temporary_use_uid: 1000/1000 (e = 0/0)
debug1: пробовать файл открытого ключа /home/skerit/.ssh/authorized_keys
debug1: очистка fd 4 O_NONBLOCK
debug1: restore_uid: 0/0
debug1: temporary_use_uid: 1000/1000 (e = 0/0)
debug1: пробовать файл открытого ключа /home/skerit/.ssh/authorized_keys2
debug1: не удалось открыть авторизованные ключи '/home/skerit/.ssh/authorized_keys2': такого файла или каталога нет
debug1: restore_uid: 0/0
Сбой publickey для скерита из порта 82.197.70.70 57154 ssh2
debug1: userauth-запрос для пользователя, служба скерита, ssh-метод подключения, пароль
debug1: попытка 2 неудачи 1
debug1: PAM: сбой аутентификации по паролю для skerit: сбой аутентификации
Не удалось пароль для скерита с порта 82.197.70.70 57154 ssh2 

Затем я попытался войти на сервер SSH с сервера SSH (локально), используя те же имя пользователя и пароль, и это сработало. Это было в файле auth.log:

8 июля, 12:21:50 vpsnl1 sshd [27298]: debug1: не удалось открыть файл ключа '/ etc / ssh / ssh_host_ecdsa_key': такого файла или каталога нет
8 июля, 12:21:50 vpsnl1 sshd [27298]: ошибка: не удалось загрузить ключ хоста: / etc / ssh / ssh_host_ecdsa_key
8 июля, 12:22:16 vpsnl1 sshd [27298]: pam_unix (sshd: auth): ошибка аутентификации; logname = uid = 0 euid = 0 tty = ssh ruser = rhost = 82.197.70.70 user =
skerit
8 июля, 12:23:50 vpsnl1 sshd [27439]: сервер прослушивает порт 0.0.0.0 22.
8 июля, 12:23:50 vpsnl1 sshd [27439]: сервер прослушивает :: порт 22.
8 июля, 12:24:07 vpsnl1 sshd [27458]: ошибка: не удалось загрузить ключ хоста: / etc / ssh / ssh_host_ecdsa_key
8 июля, 12:24:14 vpsnl1 sshd [27458]: принят пароль для скерита с порта 127.0.0.1 57667 ssh2
8 июля, 12:24:14 vpsnl1 sshd [27458]: pam_unix (sshd: сеанс): сеанс, открытый для пользователя, скерит с помощью (uid = 0)
8 июля, 12:24:25 vpsnl1 sshd [27471]: получено отключение от 127.0.0.1: 11: отключено пользователем
8 июля, 12:24:25 vpsnl1 sshd [27458]: pam_unix (sshd: сеанс): сеанс закрыт для скерита пользователя 
skerit
источник
Не могли бы вы добавить свой ssh-config?
Барт Де Вос
Хорошо, файл конфигурации добавлен!
скерит
Как насчет разрешений на .ssh? Не могли бы вы опубликовать ls -la ~ / .ssh на сервере?
mkudlacek
Хорошо, я добавил список файлов пользователя, с которым я пытаюсь войти.
скерит
1
Я думаю, что Authorized_keys не должен быть доступен для чтения всем, но это не объясняет, почему вы не можете войти с паролем. Вы можете сделать su skeritв своем аккаунте?
mkudlacek

Ответы:

9

Вы уверены, что учетная запись пользователя, к которой вы пытаетесь получить доступ, правильно настроена? Если вы вошли в систему как root в системе, можете ли вы войти в suучетную запись пользователя?

# su - username

Что вы видите в своих журналах после неудачной попытки подключения? На многих системах sshd будет регистрировать что- /var/log/secureлибо или /var/log/auth.log. Также отмечу, что вы PasswordAuthenticationвключили, но ChallengeResponseAuthenticationотключили. Видите ли вы такое же поведение, если вы включаете ChallengeResponseAuthentication?

Вот несколько общих диагностических шагов, которые следует использовать при возникновении проблем с ssh:

  • Включите подробную диагностику в ssh:

    ssh -v host.example.com
    

    Это приведет к тому, что клиент будет выводить множество диагностических сообщений при согласовании соединения. Это часто дает ключ к решению проблемы.

  • Запустите сервер в режиме отладки.

    На вашем сервере остановите sshd, затем запустите его из командной строки следующим образом:

    /usr/sbin/sshd -d
    

    Это приведет к подробному ведению журнала отладки stderr, которое очень часто будет содержать полезную информацию.

Если ни один из них не поможет вам понять, что происходит, вы бы добавили вывод к своему вопросу?

larsks
источник
Хорошо, я добавил вывод. В основном: когда я запускаю удаленный вход в систему, он говорит, что пароль не подходит, когда я пробую локальный вход в систему, он говорит, что пароль в порядке и впускает меня.
skerit
2
Это БЫЛ пароль. Я изменил пароль через веб-консоль (некоторое Java-приложение), и хотя введенный пароль был идентичным тому, что я набрал в моей консоли замазки, каким-то образом значения ascii должны были отличаться. Я изменил его на что-то более простое, правильно вошел в систему через putty и снова изменил его. Теперь это работает.
скерит
@skerit - возможно, возникла проблема с кодировкой символов - может быть, UTF8 против ASCII?
Уоррен
Рад слышать, что все работает!
Жаворонки
Возникла та же проблема, что и у @skerit после смены пароля с веб-консоли DigitalOcean.
Даниэль