LoginSignup
7
8

More than 3 years have passed since last update.

WindowsでOpenSSHでSFTPサーバを立てる場合の設定

Last updated at Posted at 2020-02-26

何?

WindowsServerでファイルをSFTPで連携したかったので、
OpenSSHでSFTPサーバを立ててみたので、その設定を記載する。

要件

  • 公開鍵認証、パスワード認証不可
  • SFTPで特定のディレクトリのみアクセス可
  • SSH接続不可 → SFTPルートディレクトリ以外見せたくない
  • SSH転送でアクセス可
  • 特定ユーザでのみSFTPログイン可

設定手順

  1. OpenSSH インストールし、サービス登録
    手順は省略。

  2. SFTPログイン用のグループとユーザを作成
    アクセス制御はグループ指定で行う予定のため。

  3. アクセスユーザの公開鍵登録
    下記ファイルにアクセスユーザの公開鍵登録
    C:\Users(SFTPログイン用ユーザ).ssh\authorized_keys
    SFTPログイン用ユーザのauthorized_keysにのみ公開鍵登録することでアクセス制御

  4. OpenSSHの設定ファイルを修正
    Windowsで、Web上でよく見る手順でOpenSSHをインストールしたならば「C:\ProgramData\ssh\sshd_config」に設定ファイルが作成されているはず。

sshd_configの設定
修正した差分部分のみ

# Logging
#SyslogFacility AUTH
#LogLevel INFO
# ファイルにINFOレベル以上のログ出力
# ログ出力先はC:\ProgramData\ssh\logs
SyslogFacility LOCAL0
LogLevel INFO

# Authentication:

#MaxSessions 10

#PubkeyAuthentication yes
# 公開鍵認証
PubkeyAuthentication yes

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
# パスワード認証不可
PasswordAuthentication no

# GSSAPI options
#GSSAPIAuthentication no
#Banner none

# override default of no subsystems
#Subsystem sftp sftp-server.exe
# SFTPサーバはsshdのプロセスで動作
Subsystem sftp internal-sftp


# Example of overriding settings on a per-user basis
#Match User anoncvs
#   PermitTTY no
#   ForceCommand cvs server

# Administratorのアクセス許可する公開鍵登録ファイルの特別パス指定は無効
#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

# SFTPログイン用のグループの場合、sftpログをファイルへログ出力
# アクセス可能なルートディレクトリに「C:\SFTP_ROOT\」を設定
Match Group SftpGroup
    ForceCommand internal-sftp -f LOCAL0 -l INFO
    ChrootDirectory C:\SFTP_ROOT\

うまく動作しない所

WindowsServer2016stdでSFTPサーバログがログ出力されない。

Windows10ならば、「C:\ProgramData\ssh\logs\sftp-server.log」にログ出力されるが、
WindowsServer2016stdではログ出力されない。調査中。

※2020/03/18追記

WindowsServer2016stdではログ出力されない。調査中。

WindwosServer2016stdでログ出力されない件解決しました。
SFTPログインユーザにログ出力フォルダの権限が無いためでした。

7
8
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
7
8