在CentOS上配置和使用SFTP服务,可以通过以下步骤实现:
安装和启动OpenSSH服务器
1、安装OpenSSH服务器:
使用yum
命令安装opensshserver
包:
```bash
sudo yum install y opensshserver
```
2、启动并设置开机自启:
启动SSH服务:
```bash
sudo systemctl start sshd
```
确保SSH服务随系统启动而启动:
```bash
sudo systemctl enable sshd
```
检查SSH服务状态:
```bash
sudo systemctl status sshd
```
创建SFTP用户及其目录
1、创建用户组:
创建一个名为sftp
的用户组:
```bash
sudo groupadd sftp
```
2、创建SFTP服务用户:
添加一个名为silent
的用户,并将其加入到sftp
组,同时禁止其通过命令行登录:
```bash
sudo useradd g sftp d /home/sftp/silent s /sbin/nologin silent
```
3、为用户设置密码:
为silent
用户设置密码:
```bash
sudo passwd silent
```
4、创建用户的SFTP根目录:
创建目录/var/sftp
作为SFTP服务的根目录,并设置适当的权限:
```bash
sudo mkdir p /var/sftp
sudo chown root:root /var/sftp
sudo chmod 755 /var/sftp
```
配置SFTP服务
1、编辑sshd_config
文件:
使用文本编辑器(如vim
)打开sshd_config
文件:
```bash
sudo vim /etc/ssh/sshd_config
```
注释掉默认的Subsystem配置:
```bash
# Subsystem sftp /usr/libexec/openssh/sftpserver
```
添加内部SFTP子系统的配置:
```bash
Subsystem sftp internalsftp
```
添加匹配sftp
组的配置,限制用户只能访问自己的主目录:
```bash
Match Group sftp
ChrootDirectory /home/sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internalsftp
```
2、重启SSH服务:
应用配置更改:
```bash
sudo systemctl restart sshd
```
验证SFTP连接
1、测试连接:
使用SFTP客户端连接到服务器:
```bash
sftp silent@127.0.0.1
```
输入silent
用户的密码进行身份验证。
多用户SFTP配置
1、为每个用户创建单独的配置文件:
为每个用户创建单独的.ssh/sshd_config
文件,并在其中指定各自的ChrootDirectory和其他配置。
修改SSH服务的启动选项,分别指定每个用户的配置文件。
2、示例:
假设有两个用户sftpuser1
和sftpuser2
,分别为他们创建不同的配置文件:
```bash
sudo cp /etc/ssh/sshd_config /home/sftpuser1/.ssh/sshd_config
sudo cp /etc/ssh/sshd_config /home/sftpuser2/.ssh/sshd_config
```
编辑每个用户的配置文件:
```bash
sudo vi /home/sftpuser1/.ssh/sshd_config
Match User sftpuser1
ChrootDirectory /sftp/user1_directory
ForceCommand internalsftp
AllowTcpForwarding no
X11Forwarding no
```
```bash
sudo vi /home/sftpuser2/.ssh/sshd_config
Match User sftpuser2
ChrootDirectory /sftp/user2_directory
ForceCommand internalsftp
AllowTcpForwarding no
X11Forwarding no
```
修改SSH服务的启动选项,分别指定每个用户的配置文件:
```bash
sudo systemctl dAEmonreload
sudo systemctl restart sshd
```
常见问题解答FAQs
1、为什么无法上传文件?:如果无法上传文件,请确保目标目录具有正确的写入权限,可以尝试将目录的拥有者设置为root
,并将权限设置为755。
```bash
sudo chown root:root /var/sftp/silent
sudo chmod 755 /var/sftp/silent
```
2、如何查看SFTP连接日志?:可以查看系统日志文件以获取有关SFTP连接的信息,常见的日志文件包括/var/log/auth.log
或/var/log/secure
,这些日志文件中会记录SFTP连接的详细信息,包括成功和失败的尝试。