У меня есть сборка Ubuntu 8.10 с запущенным OpenSSH версии 5.1p1. Я создаю новую учетную запись пользователя, устанавливаю пароль, а затем удаляю его с помощью следующей команды:
chage -d 0 username
Я хочу заставить пользователя изменить пароль с истекшим сроком действия при первом входе в систему.
Когда пользователь запускает новое соединение PuTTY SSH 2, он вводит свое имя пользователя и правильный пароль. Однако вместо того, чтобы получить запрос на изменение пароля с истекшим сроком действия, сеанс закрывается со следующей фатальной ошибкой PuTTY:
«Сервер неожиданно закрыл сетевое соединение»
Чтобы продолжить расследование, я запустил новый sshd в режиме отладки на другом порту, используя следующую команду:
/usr/sbin/sshd -ddde -p 1022
Затем я пытаюсь войти в систему через этот новый порт SSH. Вот мой результат:
debug1: userauth-request for user username service ssh-connection method password
debug1: attempt 1 failures 0
debug2: input_userauth_request: try method password
debug3: mm_auth_password entering
debug3: mm_request_send entering: type 11
debug3: mm_auth_password: waiting for MONITOR_ANS_AUTHPASSWORD
debug3: mm_request_receive_expect entering: type 12
debug3: mm_request_receive entering
debug3: monitor_read: checking request 11
debug3: PAM: sshpam_passwd_conv called with 1 messages
debug1: PAM: password authentication accepted for username
debug3: mm_answer_authpassword: sending result 1
debug3: mm_request_send entering: type 12
debug3: mm_request_receive_expect entering: type 49
debug3: mm_request_receive entering
debug3: mm_auth_password: user authenticated
debug3: mm_do_pam_account entering
debug3: mm_request_send entering: type 49
debug3: mm_request_receive_expect entering: type 50
debug3: mm_request_receive entering
debug1: do_pam_account: called
debug3: PAM: sshpam_passwd_conv called with 1 messages
debug3: PAM: do_pam_account pam_acct_mgmt = 7 (Authentication failure)
debug3: mm_request_send entering: type 50
Failed password for username from xxx.xxx.xxx.xxx port 2044 ssh2
debug3: mm_request_receive entering
debug3: mm_do_pam_account returning 0
debug1: userauth_send_banner: sent
Access denied for user username by PAM account configuration
debug1: do_cleanup
debug3: PAM: sshpam_thread_cleanup entering
debug1: do_cleanup
debug1: PAM: cleanup
debug3: PAM: sshpam_thread_cleanup entering
Похоже, я не получаю правильное сообщение от pam_acct_mgmt
. Правильно ли я истекаю сроком действия пароля? Как я могу решить эту проблему? Спасибо!
Вы можете использовать просто passwd -e username
. Команда chage -d 0 username
устанавливает последний вход в систему на 1 января 1970 года.