アクセス許可が拒否されました (公開キー) エラーを修正する方法

公開: 2024-01-10
目次
  • なぜそれが重要なのか
  • 安全なコンピュータ接続の基本
  • 鍵の鍵: 公開鍵
  • このエラーはなぜ起こるのでしょうか?
  • 修正方法
  • それでも動作しない場合の追加のヒント
  • スムーズな稼働を維持する
  • よくある質問
  • その他のリソース
  • まとめ

コンピュータを使用しているときに、「エラー: アクセス許可が拒否されました (公開キー)」というメッセージに遭遇したことはありますか? これは、コンピュータが相互に安全に通信するための SSH 接続中に通常発生する一般的なエラーです。

錠に合わない鍵を使用しようとしていると考えてください。 このエラーが表示された場合は、セキュリティ設定の何かが一致していないため、コンピュータが別のコンピュータと安全なリンクを作成するのに問題が発生していることを意味します。

エラーの修正方法: アクセス許可が拒否されました (公開キー)

なぜそれが重要なのか

SSH で行われるような安全な接続は、騒がしい部屋でプライベートな会話をしているようなものです。 特に秘密や個人情報を共有している場合は、誰にでも聞かれたくないですよね。 だからこそ、このエラーを修正することが非常に重要です。

コンピュータの会話をプライベートかつ安全に保ち、パスワードなどの機密情報の機密性を確保します。

安全なコンピュータ接続の基本

SSH とは何かを詳しく見てみましょう。

SSH は Secure Shell の略で、コンピューターが非常に安全な方法でインターネット上で相互に通信するための特別な方法です。 SSH は、2 台のコンピューターを接続する特別なプライベート トンネルのようなものだと想像してください。

この 2 台のコンピュータのみがこのトンネルを介して相互にメッセージを送信できるため、会話を盗聴者から守ることができます。

鍵の鍵: 公開鍵

このトンネルを安全にするために、SSH は「公開キー認証」と呼ばれるものを使用します。 これは特別なパスワードを持つようなものですが、その形式はキーです。 コンピュータには、他のコンピュータと共有する一意のキー (公開キーと呼ばれます) があります。

秘密の握手のようなものだと考えてください。 ハンドシェイクが一致しない場合、接続は行われません。その場合、「エラー: アクセス許可が拒否されました (公開キー)」というメッセージが表示されます。

このエラーはなぜ起こるのでしょうか?

では、なぜこのエラーが表示されるのでしょうか? よくある理由がいくつかあります。

  1. キーの問題:特殊キーの設定に問題があるためにエラーが発生する場合があります。 おそらく、コンピュータのキーが、通信しようとしているコンピュータのキーと一致しない可能性があります。 それは丸い穴に四角いペグを差し込もうとするようなもので、うまくいきません。
  2. 間違った設定:コンピュータの設定またはアクセス許可が正しく設定されていない場合もあります。 これにより、正しいキーを持っているのにロックに差し込むことができないなど、コンピューターがキーを適切に使用できなくなる可能性があります。

修正方法

このエラーが発生する理由については少し理解できたので、次はそれを修正する方法について説明します。 以下にいくつかの手順を実行します。

SSH キーの権限を確認します。

秘密キーに正しいアクセス許可を設定します。

 chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/autorized_keys

公開キーがサーバー上の~/.ssh/authorized_keysにあることを確認してください。 そうでない場合は、次を使用して追加します。

猫 ~/.ssh/id_rsa.pub | ssh ユーザー@ホスト名 'cat >> ~/.ssh/authorized_keys'。

SSH接続のデバッグ

ssh -vvv user@hostnameを実行して冗長モードを有効にし、詳細な接続診断を提供します。

サーバー上で、特にPasswordAuthenticationPubkeyAuthenticationの構成が正しいかどうかを確認してください。

猫 etc/ssh/sshd_config

追加のソリューション:

SSH 接続に正しいユーザー名を使用していることを再確認してください。

SSH サービスを再起動して接続を更新します。

 sudo systemctl restart sshd

SSH 構成ファイル内の SSH 接続ポートを確認します。 通常、デフォルトは 22 ですが、変更されている可能性があります。

SSHポートを確認する

エラーの詳細については、/var/log/auth.log や /var/log/secure などのサーバー ログを確認してください。

それでも動作しない場合の追加のヒント

これらの手順を試してもまだエラーが表示される場合は、さらにいくつかのことを試してください。

  1. Talk Mode: SSH で冗長モードをオンにします。 これは、何が問題なのかについてのさらなる手がかりを提供するようにコンピューターに要求するようなものです。 これを行うには、 ssh -vvv [email protected]のように、SSH コマンドに-vvvを追加します。 接続しようとしたときに何が起こっているかについて、より詳細な情報が得られます。
  2. エージェントの問題:場合によっては、キーを保持するツールである SSH エージェントに問題がある可能性があります。 エージェントが正しく動作していない場合、キーは正しく表示されません。 SSH エージェントを再起動すると解決する場合があります。

スムーズな稼働を維持する

今後このエラーが発生しないように、すべてを正常に動作させるためのヒントをいくつか紹介します。

  1. 鍵の管理: SSH 鍵は家の鍵と同じように扱ってください。 それらを安全に保管し、他の人と共有しないでください。 正常に動作しているかどうかを定期的に確認してください。
  2. 定期的な検査:車や家に問題がないか定期的に検査するのと同じように、SSH 設定についても同じことを行ってください。 設定が予期せず変更されていないこと、およびキーが最新であることを確認してください。

よくある質問

SSH で公開キー認証を設定するにはどうすればよいですか?

SSH で公開キー認証を設定するには、まずssh-keygenのようなコマンドを使用してローカル マシン上で SSH キー ペアを生成します。 これにより、秘密鍵 ( id_rsa ) と公開鍵 ( id_rsa.pub ) が作成されます。 次に、 ssh-copy-id user@server_ipを使用して、公開キーをサーバーの~/.ssh/authorized_keysファイルにコピーします。 authorized_keysファイルにセキュリティのための正しいアクセス許可 (通常は 600) があることを確認してください。 この設定により、SSH でパスワードの代わりにキーベースの認証を使用できるようになります。

「SSH 許可が拒否されました (公開キー)」エラーの一般的な原因は何ですか?

  • このエラーの一般的な原因は次のとおりです。
  • SSH キー ファイルに対する権限が正しくありません。 秘密鍵はユーザーのみが読み取り可能である必要があります (600)。
  • SSH 構成ファイル ( sshd_configまたはssh_config ) の構成が間違っています。
  • 古い SSH クライアントまたはサーバー ソフトウェアは、現在の認証プロトコルをサポートしていない可能性があります。
  • ファイアウォールまたはセキュリティ ソフトウェアが SSH ポートまたは接続をブロックしている。
  • authorized_keysファイルに公開キーが正しく設定されていないか、SSH 接続に間違ったユーザー名が使用されています。

SSH キーがサーバーに正しく追加されたかどうかを確認するにはどうすればよいですか?

確認するには、サーバーにログインし、 ~/.ssh/authorized_keysファイルを確認します。 公開キーがそこにリストされているはずです。 サーバーへの SSH 接続を試行して接続をテストすることもできます。 パスワードを要求されなければ、キーは正しく追加されています。

SSH キー ファイルのアクセス許可を制限することが重要なのはなぜですか?

SSH キー ファイルに対するアクセス許可を制限することは、セキュリティにとって非常に重要です。 他の人があなたの秘密キーを読み取ることができる場合、あなたのサーバーにアクセスできる可能性があります。 秘密キーを安全に保管すると、その秘密キーを認証に使用できるのは自分だけになります。

サーバーの SSH 構成を変更すると、「許可が拒否されました」エラーが発生する可能性がありますか?

はい、サーバーの SSH 構成ファイル ( etc/ssh/sshd_config ) を変更すると、このようなエラーが発生する可能性があります。 たとえば、 PubkeyAuthenticationnoに設定されている場合、サーバーは公開キー認証を受け入れず、アクセス許可拒否エラーが発生します。

SSH クライアントが古い場合はどうすればよいですか?

SSH クライアントが古い場合は、新しい認証方法をサポートしていないか、パッチが適用されていないセキュリティの脆弱性がある可能性があります。 SSH クライアントをオペレーティング システムで利用可能な最新バージョンに更新することが重要です。

ファイアウォールは SSH 接続にどのような影響を与えますか?

ファイアウォールが SSH ポート (デフォルトは 22) へのアクセスを制限するように構成されている場合、SSH 接続をブロックできます。 接続の問題を防ぐために、ファイアウォールで SSH に使用されるポートのトラフィックが許可されていることを確認してください。

その他のリソース

Linux 2024 に Sendmail をインストールする方法 (ステップバイステップ)

DevOps のための基本的な Linux コマンド (ハンドブック)

まとめ

この記事では、「エラー: アクセス許可が拒否されました (公開キー)」の原因とその修正方法について説明しました。 このエラーは、キーがロックに適合しないようなものであることに注意してください。通常、SSH キーの設定方法または使用方法に問題があることを意味します。 ここで説明した手順に従うことで、問題を解決し、他のコンピュータと安全に会話できるようになります。