sshで手抜き空パスワードにハマる
テスト用のマシンで古めのCent OS 4.4を入れ,その中のアプリだけをアップデートする実験をいろいろやっていたら,テスト用アカウントでのログインが突然できなくなりました.
Oct 12 03:41:07 testmachine sshd[1978]: User test not allowed because account is locked
「account is locked」でググると,すぐさま回答のページが.
sshの"User hoge not allowed because account is locked - うまい棒の断片 - 断片部
確かに,「PAMなんて使ってないから切ってみよう」と,sshd_configから消したあとでした.
UsePAMを切ると,次に効いてきそうなのは次の設定.
PasswordAuthentication no
PermitEmptyPasswords yes
パスワードのみはブルートフォースが怖いのでイヤ,鍵認証はしたい,でもパスワード打ち込むのが面倒なので,鍵認証でヌル・パスワードにしたいと思って書いた行でした.
でも,このPermitEmptyPasswordsは,パスワード認証の時の話なんですよね.鍵認証の時に,鍵に加えてパスワードも使うかどうかは別の話で,それは鍵を作成する時に決まります.なので,
PasswordAuthentication no
PermitEmptyPasswords no
にしても,鍵認証には関係ありません.
同じく,パスワード認証で使われる/etc/password等にパスワードが設定されているかどうかは,逆に鍵認証には無関係(PAMを切っている場合).
なので,上記のページにあるように,適当なパスワードをアカウントにつけても,ヌル・パスワードの鍵ファイルを登録しておけば,鍵認証かつノンパスワードでログインが出来るようになりました.
LunaTear: sshのロックアカウント
によると,OpenSSHの少し前のバージョンからの仕様だそうです.