openSUSE Leap 16

OpenSSH : SFTP only + Chroot2025/10/15

 

特定のユーザーに対して、シェルへの制限をかけて SFTP のみを許可し、且つ、Chroot を有効にして特定のディレクトリ配下のみアクセスできるよう設定します。

[1] 例として [/home] を Chroot ディレクトリとして設定します。
# SFTP 専用グループ作成

dlp:~ #
groupadd sftp_users

dlp:~ #
vi /etc/ssh/sshd_config.d/sftp_only.conf
# 新規作成

Subsystem       sftp    internal-sftp
Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /home
  ForceCommand internal-sftp

dlp:~ #
systemctl restart sshd

# 例として ユーザー [suse] には SFTP のみを許可する

dlp:~ #
usermod -aG sftp_users suse

[2] 対象のユーザーで SSH や SFTP でアクセスして動作確認しておきます。
suse@node01:~>
ssh dlp.srv.world

Enter passphrase for key '/home/suse/.ssh/id_ed25519':
This service allows sftp connections only.
Connection to dlp.srv.world closed.
# 正常に拒否された

suse@node01:~>
sftp dlp.srv.world

Enter passphrase for key '/home/suse/.ssh/id_ed25519':
Connected to dlp.srv.world.
sftp> ls -l
drwx------    ? 1001     1001          122 Oct 15 10:52 leap
drwx------    ? 1000     1000          268 Oct 15 10:34 suse
sftp> exit
関連コンテンツ