[Linux]公開鍵認証でSSHログインできない時に確認する項目

not_ssh_login_top

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

サーバーに SSH ログインできない原因を調査する

Linux にて SSH ログインしたときにエラーが出てログインできない!と困っていた方が居たので、原因を調査する際にチェックポイントをまとめてみました。

では順番に SSH ログインできないときにチェックするポイントを確認していきましょう。もちろんサーバーに直接ログインすることもできない、全く入れないときには使えませんので予めご了承ください(汗)。

 

SSH のサービスが起動していること

当たり前のことですが SSH ログインするには、SSHD のサービスが起動している必要があります。

〇SSHD サービスの稼働状態を確認するコマンド

systemctl status sshd

 

公開鍵が正しく設定されていること

次に確認する項目は、公開鍵が正しく設定されていることです。公開鍵の設定先は、「/home/(ユーザー名)/.ssh/authorized_keys」になります。

公開鍵は「ssh-rsa 公開鍵 コメント」の形式で表示している必要があり、

ssh-rsa AAAAB3Nz***中略***K2S6dp test_admin
ssh-rsa AAAAB3Nz***中略***HJqn6B shiki

のような形式になります。

 

公開鍵認証が有効であること

Amazon AWS や Microsoft Azure といった初期設定が公開鍵認証のサービスを除いて、オンプレミスやさくら VPS でサーバーを構築した場合は、公開鍵認証を有効にする必要があります。

確認するファイルは「/etc/ssh/sshd_config」で、sshd_config ファイルにある「PubkeyAuthentication」の行のコメントを外して、「yes」を設定しなければいけません。

PubkeyAuthentication yes

 

パーミッションが正しく設定されていること

SSH に関連したフォルダは厳格なパーミッションを設定することを求められます。

具体的には
・「/home/(ユーザー名)/」のフォルダのパーミッションが「755」より厳しいこと
・「/home/(ユーザー名)/.ssh」のフォルダのパーミッションが「700」であること
・「/home/(ユーザー名)/.ssh/authorized_keys」のファイルのパーミッションが「600」であること
を確認してください。

 

ログイン対象のユーザーがログイン可能であること

最後にログイン予定のユーザーがログイン権限があるかを確認します。ユーザーのログイン状況は、「/etc/passwd」で確認しています。

ログイン形式は複数あるため、ログインを禁止した「/sbin/nologin」以外であることを確認します。

 

SSH ログインできないときに見るエラー「Permission denied」

SSH ログインする際によく見るエラーとして、「Permission denied」があります。本エラーが発生した場合は、サーバー側のログ「/var/log/secure」にエラーが出力されているかを確認しましょう。

もしパーミッションエラーの場合であれば、
・公開鍵が正しく設定されていること
・パーミッションが正しく設定されていること
が原因である可能性が高いことになります。

 

まとめ

さいごに紹介した確認事項5点をまとめておきます。

  • SSH のサービスが起動していること
  • 公開鍵が正しく設定されていること
  • 公開鍵認証が有効であること
  • パーミッションが正しく設定されていること
  • ログイン対象のユーザーがログイン可能であること

確認事項は少ないものの、1つでも設定を失敗するとログインできなくなるので設定を行う際は十分にご注意ください。

 

 

Linuxの知識については下記の本も参考になるので、スキルアップにお役立てください。

三宅 英明 (著)、大角 祐介 (著)
ページ数: 440ページ
出版社:SBクリエイティブ
発売日:2015/06/06

出典:amazon