私はDebian安定版を実行しています。私の 'sftponly'グループのユーザー向けに次の環境を確立したいと考えています。
- 投獄された
- SFTPで転送できます
- SCPで転送できます
- SSHで対話的にログインできません
私の実験と研究から、sshd_configの次のスタンザで90%がそこに到達したようです:
Match group sftponly
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
これにより、SFTPが投獄され、SSHは投獄されません。これは良いことです。しかし、SCPも無効にします。これは、かなりの数のクライアントがSFTPではなくSCPを使用するレガシーなスクリプトプロセスであるため、理想的ではありません(交換するサーバーは両方のプロトコルをサポートしています)。変更した場合、SCPを完全に無効にすることは実用的ではない可能性があります。
SCP接続を受信すると、sshdはユーザーのログインシェルを介してそのユーザーとして「scp」プロセスを生成するため、この構成ではSCPが無効になります。特別な 'internal-sftp'ハンドラーでない場合、SFTPでも同じことが通常当てはまるようです。
だから、私の質問は次のとおりだと思います:scponlyやrsshなどのサードパーティツールを使用せずに、「internal-sftp」と同じ効果を達成する方法はありますか?「internal-sftp」の本当に素晴らしい点は、サポートファイルを使用した刑務所のセットアップや、潜在的に悪用可能なサードパーティのsetuidバイナリ(特に、rsshにはエクスプロイトの履歴があります)を処理する必要がないことです。