Skip to content

Instantly share code, notes, and snippets.

@TakashiSasaki
Created February 28, 2025 08:50
Show Gist options
  • Save TakashiSasaki/6afe7e85c8ad6293db0ab942a8e8301b to your computer and use it in GitHub Desktop.
Save TakashiSasaki/6afe7e85c8ad6293db0ab942a8e8301b to your computer and use it in GitHub Desktop.

Windows OpenSSH における administrators_authorized_keys の役割

1. administrators_authorized_keys とは?

administrators_authorized_keys は、Windows OpenSSH サーバー (sshd) において、管理者権限で SSH 公開鍵認証を行うための特別なファイルである。

通常のユーザーごとの ~/.ssh/authorized_keys とは異なり、このファイルに登録された公開鍵を使用すると、管理者権限で Windows に SSH 接続が可能となる。


2. ファイルの配置場所

administrators_authorized_keys は、デフォルトで以下のパスに配置される:

C:\ProgramData\ssh\administrators_authorized_keys

このファイルには、管理者アカウントでの SSH 公開鍵認証を許可するための公開鍵が格納される。


3. 設定方法と使用例

(1) sshd_config の設定を確認

このファイルを利用するには、sshd_config で以下のオプションが有効になっていることを確認する。

C:\ProgramData\ssh\sshd_config を開き、以下の行が有効になっていることを確認する。

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/administrators_authorized_keys

変更後、sshd を再起動する。

Restart-Service sshd

(2) 公開鍵を administrators_authorized_keys に追加

管理者アカウントとして SSH 接続を許可するため、公開鍵 (id_rsa.pub など) を C:\ProgramData\ssh\administrators_authorized_keys に追加する。

cat C:\Users\Administrator\.ssh\id_rsa.pub >> C:\ProgramData\ssh\administrators_authorized_keys

ファイルの改行が正しく維持されていることを確認し、適切なアクセス権限を設定する。

(3) アクセス権限の設定

Windows OpenSSH では、適切なアクセス権限が設定されていないと administrators_authorized_keys は無視される。

icacls "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r
icacls "C:\ProgramData\ssh\administrators_authorized_keys" /grant "Administrators:R"
icacls "C:\ProgramData\ssh\administrators_authorized_keys" /grant "SYSTEM:R"

これにより、管理者とシステムのみがこのファイルを読み取れるようにする。


4. administrators_authorized_keys のメリットと注意点

メリット

  • 管理者権限で SSH 公開鍵認証を統一的に管理できる。
  • 各ユーザーの authorized_keys に依存せず、特定の管理者アカウントでの認証を簡単に設定可能。
  • Windows の SSH 管理を強化し、パスワード不要のセキュアな接続を実現。

⚠️ 注意点

  • 適切なアクセス権限を設定しないと機能しない
  • 管理者権限での SSH 認証が有効になるため、セキュリティリスクが増加する可能性がある。
  • 不要な公開鍵が登録されないように定期的に監査を行うことが推奨される。

5. 参考文献

  1. Microsoft Docs: OpenSSH for Windows

  2. OpenSSH sshd_config マニュアル

  3. PowerShell icacls コマンドの詳細


まとめ

  • administrators_authorized_keysWindows OpenSSH における管理者権限の SSH 公開鍵認証を管理するための特別なファイル
  • C:\ProgramData\ssh\administrators_authorized_keys に公開鍵を追加し、適切なアクセス権限を設定することで機能する。
  • セキュリティ対策として、不要な鍵の削除やファイルの監査を定期的に実施することが推奨される。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment