在CentOS上搭建SFTP服务器是一个相对简单的过程,主要通过安装OpenSSH来实现,以下是详细的步骤和配置说明:
一、安装OpenSSH服务器
确保你的CentOS系统已经安装了OpenSSH服务器,如果没有安装,可以使用以下命令进行安装:
sudo yum install openssh-server
二、启动并启用SSH服务
安装完成后,启动SSH服务,并设置其开机自启:
sudo systemctl start sshd sudo systemctl enable sshd
三、检查SSH服务状态
确保SSH服务正在运行,并且没有错误:
sudo systemctl status sshd
四、配置sftp用户、访问目录等
假设我们要创建一个名为sftpuser
的用户,限制他只能访问/sftp
目录,并且使用特定的SSH配置文件。
1. 创建SFTP用户
sudo useradd -m -s /sbin/nologin sftpuser
2. 设置用户密码
sudo passwd sftpuser
3. 创建用户的SFTP根目录
sudo mkdir /sftp
4. 设置根目录的权限(根目录必须是root用户)
sudo chown root:root /sftp sudo chmod 755 /sftp
5. 在根目录下创建子目录,并设置写入权限
sudo mkdir /sftp/sharedata sudo chown sftpuser:sftpuser /sftp/sharedata
6. 创建新用户的SSH配置文件目录
sudo mkdir /home/sftpuser/.ssh
7. 复制系统SSH配置文件到用户目录
sudo cp /etc/ssh/sshd_config /home/sftpuser/.ssh/sshd_config
8. 编辑用户的SSH配置文件
在/home/sftpuser/.ssh/sshd_config
文件中,添加以下配置:
Match User sftpuser ChrootDirectory /sftp ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
注意将这个配置节放到最后,否则会出现“Directive ‘UseDNS’ is not allowed within a Match block”的错误。
9. 给新用户的用户目录递归设置归属
sudo chown -R sftpuser:sftpuser /home/sftpuser
10. 给配置文件设置读取权限
sudo chmod 755 /home/sftpuser/.ssh/sshd_config
11. 修改SSH服务启动选项(可选)
如果你需要为多个用户指定不同的配置,可以在SSH服务的启动选项中指定这些文件。
ExecStart=/usr/sbin/sshd -f /home/sftpuser1/.ssh/sshd_config -f /home/sftpuser2/.ssh/sshd_config -D $OPTIONS
然后重新加载并重启SSH服务:
sudo systemctl daemon-reload sudo systemctl restart sshd
至此,你已经成功在CentOS上搭建了一个SFTP服务器,并且创建了一个受限访问的SFTP用户,你可以使用任何支持SFTP的客户端(如WinSCP、FileZilla等)连接到服务器,并使用SSH协议(端口22)进行连接,确保使用具有适当权限的用户凭据进行身份验证。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1267960.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复