Skip to main content

Linux 限制使用者只允許SFTP

運行環境

  • Debian 12

建立使用者

useradd -M testuser -s /usr/sbin/nologin

-M 不建立家目錄

testuser 使用者

-s /usr/sbin/nologin 指定不登入bash

passwd testuser

建立資料夾

假如路徑為/ftp/test,使用者限制在test資料夾

mkdir /ftp

cd /ftp

mkdir test

test資料夾權限改為使用者,上層所有皆為root

chown testuser:testuser test

設定SSHD

編輯/etc/ssh/sshd_config

#Subsystem      sftp    /usr/lib/openssh/sftp-server

Subsystem sftp internal-sftp
Match User testuser
        ChrootDirectory /ftp
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
service ssh restart

測試

SFTP可正常登入

root@ssh:~# sftp testuser@10.0.0.200
testuser@10.0.0.200's password: 
Connected to 10.0.0.200.
sftp> ls
test  
sftp>

SSH登入被限制

root@ssh:~# ssh testuser@10.0.0.200
testuser@10.0.0.200's password: 
This service allows sftp connections only.
Connection to 10.0.0.200 closed.