職場でssh鍵認証でパスワード期限が切れたらどうなるか試して欲しいと頼まれたので試してみました。
sshの鍵はクライアント側、サーバ側どちらでも作成可能です。
それぞれの場合の手順は下記URLで説明されています。
SSH公開鍵認証メモ
https://qiita.com/kobake@github/items/d866392c07b03da099bf
今回はサーバ側でsshの鍵を作成してクライアント側に秘密鍵を転送して使用する手順としました。
1.テスト手順
サーバにrootユーザでログイン
ssh-keygen -t rsa
(パスフレーズ無しで作成)
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
chmod 700 ~/.ssh
rm id_rsa.pub
id_rsaファイルをクライアントにダウンロード
サーバ側sshd設定変更
# vi /etc/ssh/sshd_config
以下の行のコメントをはずして有効化する。
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
sshd再起動
/etc/init.d/sshd restart
rootでのパスフレーズ無しでの鍵認証でのログイン



rootでのパスフレーズ無しでの鍵認証でのログインを確認
パスフレーズが無いので、鍵が流出すると他のユーザにログインされてしまいます。
サーバにuser5ユーザでログイン
ssh-keygen -t rsa
(パスフレーズ有りで作成)
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
chmod 700 ~/.ssh
rm id_rsa.pub
id_rsaファイルをクライアントにダウンロード
user5での鍵認証でのログイン


user5での鍵認証でのログイン(パスフレーズ有)を確認
[root@rhel64 ~]# chage -l user5
Last password change : Mar 20, 2021
Password expires : Jun 18, 2021
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
chage -M 10 user5
[root@rhel64 ~]# chage -l user5
Last password change : Mar 20, 2021
Password expires : Mar 30, 2021
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 10
Number of days of warning before password expires : 7
[root@rhel64 ~]#
パスワード期限が切れた状態で鍵認証でのログイン

ログインできるがパスワード変更を求められる
パスワードログイン禁止設定
# vi /etc/ssh/sshd_config
PasswordAuthentication no
sshd再起動
/etc/init.d/sshd restart
パスワード期限を元に戻す
chage -M 90 user5
[root@rhel64 ~]# chage -l user5
Last password change : Mar 20, 2021
Password expires : Jun 18, 2021
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
user5でパスワードログインできるか確認


想定通り、user5でパスワードはログイン失敗する。
user5でパスフレーズ間違いでログインしてみる。


パスフレーズを間違えるとTeraTermが秘密鍵の読み込みに失敗してログインできない。
user5で正しいパスフレーズで鍵認証ログインを試してみる


user5で正しいパスフレーズでは鍵認証ログインに成功する。
user5のパスワード期限を切るようにする
chage -M 10 user5
[root@rhel64 ~]# chage -l user5
Last password change : Mar 20, 2021
Password expires : Mar 30, 2021
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 10
Number of days of warning before password expires : 7
[root@rhel64 ~]#
user5にてパスワード期限が切れた状態で鍵認証ログイン


パスワードログインを禁止していて、パスワード期限が切れた状態でもログインできるが
パスワード変更を求められる
2.まとめ
パスワードログインを禁止していて、パスワード期限が切れた状態でも鍵認証でログインできるが
パスワード変更を求められることがわかりました。