sshのPermission deniedを解決する方法
ssh とは、セキュアシェル(Secure SHell)の略で、安全なリモートログインのためのコマンドです。 ssh をしたときに、Permission denied (publickey,password) といったエラーが表示されて、門前払いになってしまうことがあります。
読み方
- ssh
- えすえすえいち
概要
ホストに ssh したときに、 Permission denied とエラーが出ることがしばしばあります。
Permission denied (publickey,password)
どうして、ログインができないのか、と困ってしまうことも多いでしょう。 ログインすることが目的ではなく、ログインしたあとの作業が目的なのに、ssh ができないことで、時間だけが過ぎていってしまうこともあります。
ここでは、いくつかの事例を取り上げていきたいと思います。
前提
ssh の認証の失敗の問題を解決するには、接続先のエラーを確認できれば、問題の特定を簡単にすることができます。 接続先にログインできないから、ログが確認できない、といったこともあるかと思いますが、管理者の方を捕まえて、ログを見てもらいましょう。
Permission denied が引き起こされるケース
ssh コマンドを実行したときに、Permission denied とエラーが起きてしまうケースをいくつか挙げてみましょう。
- authorized_keys が設定されていない
- ファイルのパーミッションが適切でない
- アカウントがロックされている
アカウントがロックされている
SSHの鍵ペアを作成して、 authorized_keys を設定して、さあ、ログインと思ったら、以下のエラーが表示されました。
$ ssh foo hoge@192.168.0.2's password: Permission denied, please try again. hoge@192.168.0.2's password: Permission denied, please try again. hoge@192.168.0.2's password: Permission denied (publickey,password).
これだけでは、何がおきているかわかりません。 接続先の sshd のログを確認する必要があります。
以下は、/var/log/auth.log を確認した例です。
Apr 22 00:09:17 ubuntu sshd[110837]: User hoge not allowed because account is locked Apr 22 00:09:17 ubuntu sshd[110837]: input_userauth_request: invalid user hoge [preauth] Apr 22 00:09:19 ubuntu sshd[110837]: Failed none for invalid user hoge from 192.168.0.2 port 50218 ssh2 Apr 22 00:09:19 ubuntu sshd[110837]: Failed password for invalid user hoge from 192.168.0.2 port 50218 ssh2 Apr 22 00:09:20 ubuntu sshd[110837]: Failed password for invalid user hoge from 192.168.0.2 port 50218 ssh2 Apr 22 00:09:20 ubuntu sshd[110837]: Connection closed by 192.168.0.2 port 50218 [preauth]
auth.log の以下の行が「原因」を説明してくれています。
User hoge not allowed because account is locked
これは、「 hoge というユーザは、ロックされているアカウントなので、許可されない」と言っています。
アカウントをロックしたつもりはなかったのですが、アカウントをロックされているのが問題だ、というなら、アカウントをアンロックするほかありません。 ユーザをアンロックするには、 usermod を使用します。実行例を以下に示します。
$ sudo usermod -p -U hoge
関連項目
ツイート