公開鍵認証設定の信じられないミス(ありがち)

 サーバを立てて公開鍵認証可能(OpenSSH)にしたものの、あるアカウントだけアクセスできずPermission Deniedとでるという状態になった。.sshディレクトリ・authorized_keysのパーミッション(それぞれ700と600)も正しく設定されているし、鍵の生成もOpenSSHで行われていた(Puttygenではないため1行表現)。秘密鍵と公開鍵のペアもまちがっていないのになぜ・・・という状態だった。

 試しに、ログインできている他のアカウントの公開鍵で、ログインできないアカウントにリモートログインできるか試すとログインできず((゚Д゚)ハァ?)。信じられへん・・・。アカウント登録が間違っているかと思い、以下で登録情報を確認。

# cat /etc/passwd

すると,

UserHoge01:x:1001:1002::/GroupData/UserHoge01:/bin/bash

というようなアカウント情報が確認できる。上記の記述はそれぞれ以下を表す、

第1フィールド: ユーザ名(ログイン名)
第2フィールド: (暗号化パスワード)
第3フィールド: ユーザ番号(UID)
第4フィールド: グループ番号(GID)
第5フィールド: コメントフィールド(名前など)
第6フィールド: ホームディレクトリーのパス
第7フィールド: ログイン・シェル

んで、このうちホームディレクトリの設定が間違っていた。どうも設定した先生がタイポをやらかしたらしく、存在しないディレクトリにアクセスしようとしてPermission Deniedと表示された模様。えぇーーー・・・・(アニメ”日常風”)。

 設定を修正するために、以下のコマンドを実行。

# usermod -d /正しいホームディレクトリのパス UserHoge01


無事リモートログインできるようになった。