複数のWebサイトも実行しているRHEL 8サーバーにchrooted SFTPディレクトリを設定しました。今朝SSHを試したとき、サーバーはSFTP接続のみを許可すると言いました。幸いなことに仮想マシンなので、コンソールに直接接続できます。
sshd_config
私が金曜日に追加した内容は次のとおりです。
ForceCommand internal-sftp
Match Group sftpusers
ChrootDirectory /sftp/%u
その行をコメントアウトすると、ForceCommand
SSHに戻ります。サーバー全体をSFTPサーバーに切り替えずにSFTPユーザーを特定のディレクトリに制限する正しいディレクティブは何ですか?
答え1
man sshd_config
ドキュメントを確認してください:
ForceCommand
ForceCommand
- クライアントによって提供されたすべてのコマンドを無視し、指定されたコマンドを強制します。
これを指定すると、クライアントが要求または期待するものに関係なく、すべてのSSH接続を実行する必要があることForceCommand internal-sftp
がわかります。sshd
internal-sftp
Subsystem
以下に文書化されているこの機能をほぼ確実に使用したいと思います。
Subsystem
- 外部サブシステム(ファイル転送デーモンなど)を設定します。
状況を修正するには、その項目を削除してForceCommand
に置き換えますSubsystem
。また私はコマンドがまたは適用するときだけ適用されることを視覚的により明確にするためにまたは行の後にコマンドをインデントするMatch
傾向があります。Host
Match
Host
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /sftp/%u