2014年2月5日水曜日

SSHの公開鍵ノンパス認証で「You are required to change your password immediately」

hostname1 -> hostname2
に公開鍵認証を使ってsshのノンパスログインをしようとしたのですが
以下のようなエラーが出力されてうまくできませんでした

You are required to change your password immediately (root enforced)
Last login: Wed Feb 5 11:37:38 2014 from xxx.xxx.xxx.xxx
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user nifbat.
Changing password for nifbat
(current) UNIX password:

hostname1ではssh-keygenコマンでを使ってid_dsa.pubとid_dsaファイルをパスワードなしで作成し
hostname2には上記で作成したid_dsa.pubファイルをauthorized_keysに書き込みました
.sshやauthorized_keysの権限は正しく設定されています

なぜだろうと悩んだ挙句、原因はログインしようとしているユーザにパスワードが設定されていないことが原因でした
passwdコマンドでパスワードを設定すれば問題ないのですが、以下の方法でも対応できましたので紹介しておきます

vim /etc/shadow
nifbat:.....:0:0:99999:7:::
↓
nifbat:.....:1:0:99999:7:::

shadowファイルを編集して強制的にパスワードが設定されているようにする方法です
どうしてもpasswdでパスワードを設定したくない場合にはこれでも解決できます

0 件のコメント:

コメントを投稿