HCRM博客

如何在CentOS上设置和管理SFTP服务器?

在CentOS上配置和使用SFTP服务,可以通过以下步骤实现:

安装和启动OpenSSH服务器

1、安装OpenSSH服务器

如何在CentOS上设置和管理SFTP服务器?-图1
(图片来源网络,侵权删除)

使用yum命令安装opensshserver包:

```bash

sudo yum install y opensshserver

```

2、启动并设置开机自启

启动SSH服务:

如何在CentOS上设置和管理SFTP服务器?-图2
(图片来源网络,侵权删除)

```bash

sudo systemctl start sshd

```

确保SSH服务随系统启动而启动:

```bash

sudo systemctl enable sshd

如何在CentOS上设置和管理SFTP服务器?-图3
(图片来源网络,侵权删除)

```

检查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、示例

假设有两个用户sftpuser1sftpuser2,分别为他们创建不同的配置文件:

```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连接的详细信息,包括成功和失败的尝试。

分享:
扫描分享到社交APP
上一篇
下一篇