はじめに
SSHサーバーでアクセス許可関連の設定を変更すると、SSHアクセス許可拒否エラーが表示されます。通常のシナリオには、新しいパッケージのインストールまたは新しいユーザーの作成が含まれます。
このチュートリアルでは、SSHアクセス許可拒否エラーのトラブルシューティングとSSHサーバーへの再接続の方法を学習します。
前提条件
- ローカルマシンのSSHクライアントとリモートシステムのSSHサーバー
- リモートサーバーにアクセスするためのユーザーアカウント(パスワードベースのログイン用)
- sudoのユーザーアカウント またはルート 特権
SSHアクセスが拒否される原因(publickey、gssapi-keyex、gssapi-with-mic)とは何ですか?
サーバーにSSHで接続しようとすると、SSHアクセス拒否エラーが表示されます:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
Permission deniedステートメントに続いて、ブラケットには、接続の開始時に失敗した認証方法の試行が含まれています。このエラーは、公開鍵が問題であることを示唆しており、誤解を招く恐れがあります。
エラーの理由の1つは、 sshd_config
である可能性があります。 、SSHサーバー構成を含むファイル。もう1つの可能性は、 authorized_keys
ファイルの権限が不十分です。このファイルには、サーバーへのSSH接続を許可されているクライアントの公開鍵のリストが含まれています。その結果、システムがファイルから読み取ることができないため、許可拒否エラーが発生します。
拒否されたSSHアクセス許可を修正する方法
どちらのソリューションにも、サーバー側で実行する必要のある手順が含まれています。サーバーでターミナルを開くことから始めて、以下の解決策の1つに進みます。
解決策1:パスワード認証を有効にする
パスワードを使用してSSHサーバーにアクセスする場合、アクセス拒否エラーを修正するための解決策は、 sshd_config
でパスワードログインを有効にすることです。 ファイル。
これを行うには、テキストエディタでファイルを開きます。この例では、nanoエディターを使用しています:
sudo nano /etc/ssh/sshd_config
ファイルで、 PasswordAuthentication
を見つけます 行を入力し、 yes
で終わることを確認します 。
ChallengeResponseAuthentication
を見つけます オプションを選択し、 no
を追加して無効にします 。
行がコメント化されている場合は、ハッシュ記号 #
を削除します コメントを外します。
ファイルを保存して終了します。
次のコマンドを入力して、SSHサービスを再起動します。
sudo systemctl restart sshd
解決策2:ファイルシステムのアクセス許可を変更する
セキュリティ上の懸念から、SSH認証方法としてパスワードベースのログインを使用することはお勧めしません。したがって、公開鍵認証方式のトラブルシューティングを行うため、次の解決策が望ましい場合があります。
まず、 sshd_config
を開きます テキストエディタを使用したファイル:
sudo nano /etc/ssh/sshd_config
ファイルで、次のオプションが次のように設定されていることを確認してください。
PermitRootLogin no
PubkeyAuthentication yes
行の先頭にハッシュ記号を追加して、GSSAPI関連のオプションをコメントアウトします。
#GSSAPIAuthentication yes
#GSSAPICleanupCredentials no
また、 UsePAM
を確認してください 行はyes
に設定されています :
UsePAM yes
ファイルを保存して、sshdサービスを再起動します:
systemctl restart sshd
次に、ホームフォルダに移動して、アクセス許可を確認します。
ls -ld
所有者の権限が読み取り、書き込み、実行に設定されていない場合( drwx------
)、chmodコマンドを使用して変更します:
chmod 0700 /home/[your-username]
次に、 .ssh
に移動します フォルダを作成し、権限を再確認します:
ls -ld
このディレクトリには、ファイル所有者の読み取り、書き込み、および実行のアクセス許可も必要です。それらを強制するには、 chmod
を使用します もう一度:
chmod 0700 /home/your_home/.ssh
.ssh
フォルダにはauthorized_keys
が含まれています ファイル。次の方法で権限を確認してください:
ls -ld authorized_keys
ファイルの所有者には、読み取りと書き込みのアクセス許可が必要です。それらを設定するには、次を使用します:
chmod 0600 /home/[username]/.ssh/authorized_keys
ここで、キーペアを使用して再度ログインしてみてください。以下の出力は、ログイン試行が成功したことを示しています。