SSH が期限切れになると、新しいパスワードの入力を求められません。

SSH が期限切れになると、新しいパスワードの入力を求められません。

ユーザーの既存のパスワードが期限切れになったら、新しいパスワードの入力を求めるSSHを設定したいのですが、現在ログインできません。認証バックエンドとしてKerberosを使用しています。ユーザーのパスワードが期限切れになったことを確認できます。

kadmin:  getprinc demo
...
Password expiration date: Tue Oct 27 22:25:09 MDT 2020

コンソール、ログインプロセス、またはkinitを介してログインしようとすると、新しいパスワードの入力を求められます。

root@host2:~# login demo
Password: 
Password expired.  You must change it now.
Enter new password: 

root@host2:~# kinit -p demo
Password for [email protected]
Password expired.  You must change it now.
Enter new password: 

ただし、SSH経由でログインしようとすると、次のエラーが発生します。

user1@host1:~$ ssh demo@host2
demo@host2's password: 
Permission denied, please try again.
demo@host2's password: 
Permission denied, please try again.
demo@host2's password: 
demo@host2: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

auth.logパスワードが期限切れになったと思われるファイルを表示できます。

Oct 28 17:41:09 blljmp02 sshd[10439]: debug3: receive packet: type 50 [preauth]
Oct 28 17:41:09 blljmp02 sshd[10439]: debug1: userauth-request for user demo service ssh-connection method password [preauth]
Oct 28 17:41:09 blljmp02 sshd[10439]: debug1: attempt 4 failures 3 [preauth]
Oct 28 17:41:09 blljmp02 sshd[10439]: debug2: input_userauth_request: try method password [preauth]
Oct 28 17:41:09 blljmp02 sshd[10439]: debug3: mm_auth_password entering [preauth]
Oct 28 17:41:09 blljmp02 sshd[10439]: debug3: mm_request_send entering: type 12 [preauth]
Oct 28 17:41:09 blljmp02 sshd[10439]: debug3: mm_auth_password: waiting for MONITOR_ANS_AUTHPASSWORD [preauth]
Oct 28 17:41:09 blljmp02 sshd[10439]: debug3: mm_request_receive_expect entering: type 13 [preauth]
Oct 28 17:41:09 blljmp02 sshd[10439]: debug3: mm_request_receive entering [preauth]
Oct 28 17:41:09 blljmp02 sshd[10439]: debug3: mm_request_receive entering
Oct 28 17:41:09 blljmp02 sshd[10439]: debug3: monitor_read: checking request 12
Oct 28 17:41:09 blljmp02 sshd[10439]: debug1: temporarily_use_uid: 199999/199999 (e=0/0)
Oct 28 17:41:09 blljmp02 sshd[10439]: debug1: restore_uid: 0/0
Oct 28 17:41:09 blljmp02 sshd[10439]: debug1: Kerberos password authentication failed: Password has expired
Oct 28 17:41:09 blljmp02 sshd[10439]: debug1: krb5_cleanup_proc called
Oct 28 17:41:09 blljmp02 sshd[10439]: debug3: mm_answer_authpassword: sending result 0
Oct 28 17:41:09 blljmp02 sshd[10439]: debug3: mm_request_send entering: type 13
Oct 28 17:41:09 blljmp02 sshd[10439]: Failed password for demo from 172.16.44.18 port 34012 ssh2

SSHで新しいパスワードを求めるメッセージを表示するにはどうすればよいですか?

Ubuntu 18.04を使用しています。以下は私のPAM設定です。

root@host2:~# cat /etc/pam.d/common-auth | egrep -v '(^#|^$)'
auth    [success=3 default=ignore]  pam_krb5.so minimum_uid=1000
auth    [success=2 default=ignore]  pam_unix.so nullok_secure try_first_pass
auth    [success=1 default=ignore]  pam_sss.so use_first_pass
auth    requisite           pam_deny.so
auth    required            pam_permit.so
auth    optional            pam_cap.so

root@host2:~# cat /etc/pam.d/common-account | egrep -v '(^#|^$)'
account [success=1 new_authtok_reqd=done default=ignore]    pam_unix.so 
account requisite           pam_deny.so
account required            pam_permit.so
account required            pam_krb5.so minimum_uid=1000
account sufficient          pam_localuser.so 
account [default=bad success=ok user_unknown=ignore]    pam_sss.so

root@host2:~# cat /etc/pam.d/common-password | egrep -v '(^#|^$)'
password    requisite           pam_pwquality.so retry=3
password    [success=3 default=ignore]  pam_krb5.so minimum_uid=1000 try_first_pass use_authtok
password    [success=2 default=ignore]  pam_unix.so obscure use_authtok try_first_pass sha512
password    sufficient          pam_sss.so use_authtok
password    requisite           pam_deny.so
password    required            pam_permit.so

root@host2:~# cat /etc/pam.d/common-session | egrep -v '(^#|^$)'
session [default=1]         pam_permit.so
session requisite           pam_deny.so
session required            pam_permit.so
session optional            pam_umask.so
session required        pam_mkhomedir.so umask=0022 skel=/etc/skel
session optional            pam_krb5.so minimum_uid=1000
session required    pam_unix.so 
session optional            pam_sss.so 
session optional    pam_systemd.so

ベストアンサー1

SSH宣言が間違っているようです。次のようにする必要があります。 ssh user@DOMAIN@host代わりにssh user@host

ここに画像の説明を入力してください。

スクリーンショット:あなたのエラーを再現し、2回目の試み(正しい方法)で、パスワードが期限切れのドメイン[email protected]ユーザーとしてログインし、パスワードを正常に変更できることがわかります。

おすすめ記事