システム全体に影響を与えずにSFTPサーバーを設定する方法

システム全体に影響を与えずにSFTPサーバーを設定する方法

複数のWebサイトも実行しているRHEL 8サーバーにchrooted SFTPディレクトリを設定しました。今朝SSHを試したとき、サーバーはSFTP接続のみを許可すると言いました。幸いなことに仮想マシンなので、コンソールに直接接続できます。

sshd_config私が金曜日に追加した内容は次のとおりです。

ForceCommand internal-sftp
Match Group sftpusers
ChrootDirectory /sftp/%u

その行をコメントアウトすると、ForceCommandSSHに戻ります。サーバー全体をSFTPサーバーに切り替えずにSFTPユーザーを特定のディレクトリに制限する正しいディレクティブは何ですか?

答え1

man sshd_configドキュメントを確認してください:

ForceCommandForceCommand- クライアントによって提供されたすべてのコマンドを無視し、指定されたコマンドを強制します。

これを指定すると、クライアントが要求または期待するものに関係なく、すべてのSSH接続を実行する必要があることForceCommand internal-sftpがわかります。sshdinternal-sftp

Subsystem以下に文書化されているこの機能をほぼ確実に使用したいと思います。

Subsystem- 外部サブシステム(ファイル転送デーモンなど)を設定します。

状況を修正するには、その項目を削除してForceCommandに置き換えますSubsystem。また私はコマンドがまたは適用するときだけ適用されることを視覚的により明確にするためにまたは行の後にコマンドをインデントするMatch傾向があります。HostMatchHost

Subsystem sftp internal-sftp

Match Group sftpusers
    ChrootDirectory /sftp/%u

関連情報