FreeBSD 15

OpenSSH : SFTP only + Chroot2025/12/18

 

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

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

root@dlp:~ #
pw groupadd sftp_users

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

root@dlp:~ #
pw groupmod sftp_users -m freebsd

root@dlp:~ #
vi /etc/ssh/sshd_config
# 117行目 : コメントにしてその下に追記
#Subsystem      sftp    /usr/libexec/sftp-server
Subsystem       sftp    internal-sftp

# 最終行に追記
Match Group sftp_users
    X11Forwarding no
    AllowTcpForwarding no
    ChrootDirectory /home
    ForceCommand internal-sftp

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

Enter passphrase for key '/home/freebsd/.ssh/id_ed25519':
This service allows sftp connections only.
Connection to dlp.srv.world closed.   # 設定通り拒否された

freebsd@node01:~ $
sftp freebsd@dlp.srv.world

Enter passphrase for key '/home/freebsd/.ssh/id_ed25519':
Connected to dlp.srv.world.
sftp>
関連コンテンツ