web-dev-qa-db-ja.com

Windows ServerのOpenSSHでユーザーをsftpに制限するにはどうすればよいですか?

https://github.com/PowerShell/Win32-OpenSSH/releases からダウンロードしたOpenSSHを使用しています。

ここでの私の目標は、sshアクセスなしでsftpファイルを転送できるsshサーバーをセットアップすることです。 OpenSSHが提供する公式ドキュメントによると、これはバージョン7.7以降のWindowsでサポートされるはずです。がリリースされ、sshd_configで制限を設定する必要があり、しばらくこのファイルで遊んでみましたが、サブフォルダーにのみアクセスできるように制限できませんでした。これは、構成ファイルにあるものです。追加:

Subsystem   sftp    sftp-server.exe
ForceCommand internal-sftp 
ChrootDirectory c:\users\myusername 
AllowTcpForwarding no 
PermitTunnel no
GatewayPorts no

なぜこれが機能しないのか誰か教えてもらえますか?または、このようにのみSFTPアクセスを設定することはできませんか?

別のオプションは、SSH接続を無効にすることです。 WindowsのOpenSShでこれを実現するにはどうすればよいですか?

1

Powershell-OpenSSH Github のMika-nから:

これはOpenSSH-win648.1.xバージョンで機能しますが、次のsshd_configオプションを設定する必要があります(デフォルトでは、Windowsプラットフォームの%PROGRAMDATA%\SSH\フォルダーの場所にあります)。

ForceCommand internal-sftp 
Subsystem  sftp   sftp-server.exe -d "D:\MyDataRoot\" 
ChrootDirectory D:\MyDataRoot

PermitTunnel no 
AllowAgentForwarding no 
AllowTcpForwarding no
X11Forwarding no 
AllowUsers sftpuser

したがって、-dを使用してサブシステム行を追加してフォルダーを設定するか、-dForceCommandエントリに追加することを検討してください。

また、ユーザーがフォルダーに含まれるようにするには、ユーザーが正しいファイルシステム権限を持っていることを確認する必要があることに注意してください。

0
user19702