0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【実験】Windows OpenSSHのパーミッション設定を色々試す

Posted at

Windows上にOpenSSHサーバを建て,使っています.セキュリティのため,認証方式として公開鍵認証を使用しているのですが,様々な原因で認証エラー"Permission Denied (publickey)"が出て面倒くさかったです.

原因は主にWindowsのパーミッションです.パーミッションの設定が少しでも間違っていると認証エラーが発生します.ここでは適切なパーミッション設定方法についてまとめます.

アカウント構成

はじめに,アカウントの構成を示します.サーバを建てているWindows PCは他の人と共用なので,以下のようなアカウントが入っています.

アカウント名 説明 Administratorsグループ
Administrator 休止している(ACTIVE=NO)
Public 皆が使う用.このアカウントでOpenSSHサーバを起動(Start-Service sshd)する.
Private 各個人が使う用.アカウント名は各々の名前になっている.これらのアカウントへSSHでアクセスしたい. ×

適切なパーミッション設定はアカウント構成によって変わってきます.

結論:適切なパーミッション設定

各個人が使う用のアカウントのホームディレクトリにて,以下のディレクトリとファイルを作ることになります.

.ssh
.ssh/authorized_keys

これら2件に対し,適切にパーミッション設定を行うことが必要です.

  1. [プロパティ]→[セキュリティ]→[詳細設定]より [継承の無効化] を選択します.
  2. アクセス許可を与えるプリンシパルを以下のいずれかに限定します.いずれもアクセスはフルコントロールです:

  • [ユーザ] 自分のアカウント
  • [ユーザ] SYSTEM

自分のアカウントに加えSYSTEMを追加したらうまくいきました.

  • [ユーザ] 自分のアカウント
  • [グループ] Administrators

グループであるAdministrators(←複数形だよ!)を与えてもうまくいきました.

動かなかった例

  • [ユーザ] 自分のアカウント

OpenSSHサーバを起動している主体が読み込んでこれないので,動かないのだと思います.
例えば,次の記事などでは現行のアカウントを追加するだけで良いとされていますが,それはあくまでもOpenSSHサーバを起動するアカウントとSSHでアクセスするアカウントが同じ時に限ります.適切なパーミッション設定はユーザ構成によって変わってくることに注意が必要です.

  • [ユーザ] 自分のアカウント
  • [ユーザ] Administrator

私の場合,Administratorは休止中であり,これにアクセスを与えても動きませんでした.

  • [ユーザ] 自分のアカウント
  • [ユーザ] Public

PublicでOpenSSHを起動するのだから,Publicを追加すればいいのでは?と思ったのですが,動きませんでした.SYSTEMと自分自身以外のユーザを追加してはいけないのかも(?).

他にパーミッション設定を注意せねばならない場所

各個人の.ssh/だけではなく,OpenSSHに必要な各種フォルダのパーミッションも適切に設定する必要があります.

例えば,C:¥ProgramData¥ssh¥logsのパーミッションに個人アカウントを追加してしまうと,OpenSSHが起動しませんでした(例外を吐いて終了した).

参考:sshd_config

C:¥ProgramData¥ssh¥sshd_config
Protocol 2
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
AllowUsers Private

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?