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でこれを実現するにはどうすればよいですか?
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
を使用してサブシステム行を追加してフォルダーを設定するか、-d
をForceCommand
エントリに追加することを検討してください。
また、ユーザーがフォルダーに含まれるようにするには、ユーザーが正しいファイルシステム権限を持っていることを確認する必要があることに注意してください。