sshのPermission deniedを解決する方法

提供: Linux入門
移動: 案内検索
スポンサーリンク

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

関連項目




スポンサーリンク