日本語

開発者ツール · Chmod 計算機

SSH 権限がオープンすぎます: ~/.ssh が必要とする正確なモードとその理由

· なぜそれが重要なのか

chmod unix アクセス制御

プライベート SSH マテリアルは、個別の Unix パーミッション ビット図として表示されます
オリジナル ToolAcre ベクトル イラスト

OpenSSH は、他のユーザーが読み取りまたは変更できるキーとauthorized_keys ファイルを拒否します。この投稿では、予期されるモードをリストし、StrictModes チェックについて説明し、それらを検証する方法を示します。

権限 0644 がオープンすぎます - 昨日機能したキーは、新しいマシンにコピーすると拒否されます

モード 0644 でコピーされた秘密鍵は、rw-r--r-- にデコードされます。所有者はそれを読んで変更することができますが、グループや他の人はそれを読むことができます。 600 プライベート ファイル プリセットは、代わりに rw------ をレンダリングし、これらのクラスを空のままにします。これはビットを正確に示していますが、SSH クライアントがキーを受け入れたのか拒否したのかを証明することはできません。

監視モードをプライベート プリセットと比較します。入力 0644、644、および 0o644 は同等であり、600 に変更すると、所有者の読み取りと書き込みを維持しながら、グループ読み取りとその他の読み取りが削除されます。生成されたコマンドは不活性です。クライアントの動作、所有権、ACL、およびストレージのセマンティクスには、このコンバーターを超える証拠が必要です。

クライアントがそもそもチェックする理由 — 他人が読み取れる秘密鍵はもはや秘密ではないため、ssh はそれを信頼することを拒否します

リポジトリは 600 「プライベート ファイル」というラベルを付け、所有者のみのアクセスを説明します。その算術演算はその説明を裏付けています。6 は所有者に読み取りと書き込みを与えますが、両方のゼロはグループとその他から通常のアクセス許可を削除します。シンボリックな結果は rw------ です。これは、クライアントが許可を受け入れるのではなく、モードに許可が存在しないことを証明します。

OpenSSH 実装、マニュアル、構成、または実行時メッセージがソースに表示されないため、プリセットは拒否ポリシーを確立できません。電卓は、1 つのモードですべてのエラーを解決することを約束したり、キーの内容を検証したりすることはありません。候補者が所有者クラスを超えて読み取り、書き込み、または実行を公開しているかどうかを確実に示します。

リポジトリのラベルは 600 プライベートです。クライアント拒否ポリシーには OpenSSH の証拠が必要です

StrictModes の動作はここでは実装も検証もされていません。ブラウザには、SSH サーバー、ホーム ディレクトリの検査、所有権の検索、または設定の入力はありません。 authorized_keys が参照されるかどうか、別の ID がディレクトリに書き込むことができるかどうか、または設定が適用されるかどうかを知ることはできません。モードに入ると、デーモンの決定やファイルシステムの監査ではなく、変換が実行されます。

正確なビットと正確なポリシーは別の問題です。モード 600 は rw------ を証明し、700 は rwx------ を証明します。どちらも所有権の特定、親ディレクトリの確認、デーモンのモデル化は行いません。サーバーのドキュメントとファイルシステムの証拠を個別に収集し、計算ツールを使用して、その出力を StrictModes の判定や完全なセキュリティ監査として提示することなく、観察結果を解読します。

StrictModes の動作はここでは実装または検証されていません

モード 600 および 700 はプライベート プリセットとして出荷されます。モード 600 では、通常のファイル所有者に読み取りと書き込みが許可され、グループやその他のアクセス許可は与えられません。モード 700 は、ディレクトリの所有者実行を追加し、エントリと名前付きコンテンツへのアクセスを有効にしますが、他のクラスは通常のビットを通じて何も受け取りません。電卓はまだ実際の所有者を知りません。

他の SSH 関連のファイル ルールは外部のままです。公開キーとauthorized_keysは関連している可能性がありますが、リポジトリはそれらに対する検証済みの要件を提供しません。計算機は 644 を rw-r--r-- としてデコードできますが、SSH の受け入れを証明することはできません。より広範な要件テーブルには、これらのソースや既存の記事にない信頼できる OpenSSH 証拠が必要です。

600 および 700 はプライベート プリセットとして出荷されます。他の SSH ファイル ルールは外部のままです

サポートされている例では、ディレクトリを監査せずにリスト文字列を変換します。外部出力が -rw-r--r-- を示す場合、パーサーは 644 を返します。 rw------を示す場合は、600 を返します。マトリックスは、変更されたグループ読み取りボックスとその他の読み取りボックスを強調表示します。これにより、パス、所有権、およびリストの出所は検査されないまま、転記と算術が検証されます。

ディレクトリ文字列も同様に機能します。 9 つの許可位置を解析する前に認識された型文字が削除されるため、指定された drwx------ は 700 になります。概要にはディレクトリのプレフィックスを表示できます。このページには ~/.ssh がリストされておらず、ファイル、所有者、ACL インジケーターも検出されていないため、この変換を監査として説明することはできません。

実用的な例: ディレクトリを監査せずにコピーされたモード文字列を変換する

転送ツールとファイルシステム間のモード損失は、リポジトリの証拠の外にあります。ソースはファイルのコピー、アーカイブのオープン、ストレージのマウント、場所間のメタデータの比較を行いません。計算機は、観察された 644 を共有、ドライブ、初期化システム、またはアーカイブ ユーティリティに起因させることはできません。フィールドに入力されたモードのみが表示され、転送履歴は表示されません。

コピーされた項目に予期しないモードがある場合、責任を割り当てずに期待値と観測値を比較します。 600 と 644 の間では、group-read と other-read が表示される間、所有者の権限は変更されません。コンバーターはその正確なデルタをサポートします。転送、保存、再生のいずれが原因であるかを判断するには、目的地と転送経路からの証拠が必要です。

転送ツールとファイルシステム間でのモード損失はリポジトリの証拠の外にあります

キーの形式、エージェントの状態、およびサーバーのログは、この計算ツールの対象外です。 8 進数および記号の許可テキストを解析しますが、秘密キー、ssh エージェントのデータ、ログは解析しません。有効な 600 変換は、暗号化マテリアル、ロードされた ID、ネットワーク交換、サーバー応答については何も示しません。これは、空のグループや他のクラスを使用して読み取りおよび書き込みを行うのは所有者だけであることが証明されます。

この境界により、すべての SSH 障害を chmod 作業として扱うことができなくなります。観察されたモードがプライベート プリセットと異なる場合、計算機は正確なビットを表示します。すでに一致している場合、ルートはそれ以上の SSH 証拠を提供しません。アクセスを拡大するのではなく、外部診断を続行します。変換が成功しても認証は行われず、プレビューは何も実行されません。

要点: プライベートとは 600 および 700 を意味します。そして、設定しようとしているモードがグループや他のユーザーに何も与えないことを電卓が確認します。

リポジトリに基づく重要な点は、600 と 700 が所有者用に通常のアクセス許可を予約していることです。それらのシンボリック形式 rw------ および rwx------ には、グループやその他の許可は含まれません。 8 進数、記号テキスト、チェックボックス、および概要はそれらの表現を検証し、不正な形式の位置は拒否されます。これらはいずれも、SSH の受け入れ、所有権、キーの有効性、または認証を証明するものではありません。

変換をユニバーサル SSH ポリシーに変えないでください。このルートは StrictModes の実装、ホーム ディレクトリの検査、所有者の識別、キー ファイルの検証を行いません。これを使用して空のグループやその他のクラスを確認し、信頼できる SSH の証拠と実際のシステムに依存します。表示されたコマンドをコピーすると、シェルとファイルシステムに責任が移ります。