# 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.
```