ウェブサイト検索

Linux で正しい SSH ディレクトリ権限を設定する方法


SSH が正常に動作するには、~/.ssh または /home/username/.ssh ディレクトリ (すべてのユーザー固有の SSH 設定のデフォルトの場所) に対する正しいアクセス許可が必要です。および認証ファイル。ユーザーに対して推奨される権限は読み取り/書き込み/ 実行であり、グループや他のユーザーがアクセスできないようにする必要があります。

さらに、ssh では、ディレクトリ内のファイルにユーザーの読み取り/書き込み権限があり、他のユーザーがアクセスできないようにする必要があります。そうしないと、ユーザーに次のエラーが発生する可能性があります。

Authentication refused: bad ownership or modes for directory

このガイドでは、Linux システムで .ssh ディレクトリとそこに保存されているファイルに正しいアクセス許可を設定する方法について説明します。

Linux で正しい SSH ディレクトリ権限を設定する

上記のエラーが発生した場合は、chmod コマンドを使用して、.ssh ディレクトリに正しい ssh ディレクトリのアクセス許可を設定できます。

chmod u+rwx,go-rwx ~/.ssh
OR
chmod  0700 ~/.ssh

~/.ssh ディレクトリの権限を確認するには、次のように -l フラグと -d フラグを指定して ls コマンドを使用します。

ls -ld .ssh/

以下は、~/.ssh ディレクトリにあるファイルの一部です。

  • 秘密キー ファイル (例: id_rsa) – 認証用の秘密キー。これには機密性の高い情報が含まれているため、所有者に読み取りおよび書き込み権限が必要であり、アクセスできないようにする必要があります。グループなどで接続しない場合、ssh は接続を拒否します。
  • 公開キー (例: .pub ファイル) – 認証用の公開キー。これには機密情報も含まれるため、所有者には読み取りおよび書き込み権限、つまり読み取り専用権限が必要です。グループ別、その他。
  • authorized_keys – このユーザーとしてログインするために使用できる公開キーのリストが含まれます。機密性は高くありませんが、所有者に読み取りおよび書き込み権限が必要であり、グループや他のユーザーがアクセスできないようにする必要があります。
  • known_hosts – ssh ユーザーがログインしたすべてのホストのホスト キーのリストを保存します。所有者には読み取りおよび書き込み権限が必要であり、グループや他のユーザーはアクセスできないようにする必要があります。
  • config – ユーザーごとの設定ファイルであり、所有者に読み取りおよび書き込み権限が必要であり、グループや他のユーザーがアクセスできないようにする必要があります。

デフォルトでは、~/.ssh ディレクトリの下のファイルは、適切な権限が設定されて作成されます。権限を確認するには、ホーム ディレクトリ内で次のコマンドを実行します。

ls -l .ssh/ 

ssh が上記のファイルのいずれかに対する権限が間違っていると警告する場合は、次のようにファイルのいずれかに正しい権限を設定できます。

chmod u+rw,go-rwx .ssh/id_rsa
chmod u+rw,go-rwx .ssh/id_rsa.pub
chmod u+rw,go-rwx .ssh/authorized_keys
chmod u+rw,go-rwx .ssh/known_hosts
chmod u+rw,go-rwx .ssh/config
OR
chmod 600 .ssh/id_rsa
chmod 600 .ssh/id_rsa.pub
chmod 600 .ssh/authorized_keys
chmod 600 .ssh/known_hosts
chmod 600 .ssh/config

さらに、次のスクリーンショットに示すように、ユーザーのホーム ディレクトリはグループまたは他のユーザーによって書き込み可能であってはなりません。

ls -ld ~

ホーム ディレクトリ上のグループおよびその他の書き込み権限を削除するには、次のコマンドを実行します。

chmod go-w ~
OR
chmod 755 ~

次の SSH 関連記事もお読みください。

  • OpenSSH サーバーを保護して強化する方法
  • OpenSSH サーバーのベスト セキュリティ プラクティス 5 つ
  • Linux で SSH パスワードレス ログインをセットアップする方法 [3 つの簡単なステップ]
  • SSHGUARD を使用して SSH ブルート フォース攻撃をブロックする方法
  • Linux でポート ノッキングを使用して SSH サービスを保護する方法
  • Linux で SSH ポートを変更する方法

今のところはここまでです!このトピックについて質問したり、意見を追加したりするには、以下のコメント セクションを使用してください。