ToB企服应用市场:ToB评测及商务社交产业平台

标题: CentOS上搭建SFTP [打印本页]

作者: 用户国营    时间: 2024-5-20 16:24
标题: CentOS上搭建SFTP
CentOS上搭建SFTP

 
在CentOS上安装SFTP服务通常是通过安装OpenSSH来实现的,因为OpenSSH默认提供了SFTP功能。以下是在CentOS上安装SFTP的步调:
 
一、安装OpenSSH服务器:

sudo yum install openssh-server
启动SSH服务:
sudo systemctl start sshd
确保SSH服务随体系启动而启动:
sudo systemctl enable sshd
检查SSH服务状态:
sudo systemctl status sshd
这将表现SSH服务是否正在运行以及其他相干信息。
如今,你的CentOS服务器上应该已经安装并运行了SFTP服务。你可以利用任何支持SFTP的客户端(如WinSCP、FileZilla等)连接到服务器。确保利用SSH协议(端口22)进行连接,并利用具有得当权限的用户凭据进行身份验证。
 
二、配置sftp用户、访问目次等

下面是一个完备的例子,假设我们要创建一个名为sftpuser的用户,限制他只能访问/sftp目次,并且利用特定的SSH配置文件。
 
创建SFTP用户:
sudo useradd -m -s /sbin/nologin sftpuser
设置用户密码:
sudo passwd sftpuser
创建用户的SFTP根目次:
sudo mkdir /sftp
设置根目次的权限(根目次必须是root用户,否则sftp连接不上):
sudo chown root:root /sftp
sudo chmod 755 /sftp
在根目次下层建立子目次方可以写入(根目次只能读取不能写入,因为根目次必须是root用户,而sftp访问的用户却是我们新建的sftpuser)
mkdir /sftp/sharedata
chown sftpuser:sftpuser /sftp/sharedata
 
创建新用户自定义ssh配置
简单点直接修改/etc/ssh/sshd_config也可以,这样服务启动选项sshd.service就不消改了
创建用户的SSH配置文件目次:
sudo mkdir /home/sftpuser/.ssh
复制体系SSH配置文件到用户目次:
sudo cp /etc/ssh/sshd_config /home/sftpuser/.ssh/sshd_config
编辑用户的SSH配置文件:
sudo vi /home/sftpuser/.ssh/sshd_config
在这个文件中,确保你有得当的配置,比方利用ChrootDirectory限制用户访问,以及其他任何你想要自定义的配置。注意将这个配置节放到最后,否则老是报错: "Directive 'UseDNS' is not allowed within a Match block" 表明在 Match 块中不允许利用 UseDNS 这个指令。
Match User sftpuser
    ChrootDirectory /sftp
    ForceCommand internal-sftp
    AllowTcpForwarding no
X11Forwarding no
 
给新用户的用户目次递归设置归属
chown -R sftpuser:sftpuser /home/sftpuser
给配置文件设置读取权限
chmod 755 /home/sftpuser/.ssh/sshd_config
 
修改SSH服务启动选项
打开SSH服务的启动选项文件,可以利用systemctl status sshd检察找到(通常在 /etc/systemd/system/sshd.service 或 /etc/init.d/sshd 或/usr/lib/systemd/system/sshd.service),并修改为:
ExecStart=/usr/sbin/sshd -f /home/sftpuser/.ssh/sshd_config -D $OPTIONS
或者
/usr/sbin/sshd -f /home/sftpuser/.ssh/sshd_config $OPTIONS
重新加载SSH服务:
systemctl daemon-reload
systemctl restart sshd
如今,用户sftpuser被限制在sftp目次下,并且只能利用SFTP进行文件传输。他们的SSH配置文件位于/home/sftpuser/.ssh/sshd_config,这样他们可以自定义他们的SSH行为而不影响其他用户或体系级别的配置。
 
检察错误日志:
检查体系日志:如果问题仍旧存在,请检察体系日志文件,如 /var/log/auth.log 或 /var/log/secure,以获取有关写入文件失败的详细信息。日志文件中大概会提供关于出现问题的原因的线索。
 
三、多SFTP用户怎样配置

SSH服务启动选项只能指定一个配置文件。如果你想要为多个用户指定不同的配置,你需要为每个用户创建单独的配置文件,并在启动选项中指定这些文件。
 
比方,如果你有两个用户 sftpuser1 和 sftpuser2,你可以为他们分别创建不同的配置文件,然后在SSH服务的启动选项中指定这些文件。
 
为每个用户创建配置文件:
sudo cp /etc/ssh/sshd_config /home/sftpuser1/.ssh/sshd_config
sudo cp /etc/ssh/sshd_config /home/sftpuser2/.ssh/sshd_config
编辑每个用户的配置文件并根据需要进行自定义:
sudo vi /home/sftpuser1/.ssh/sshd_config
 
Match User sftpuser1
    ChrootDirectory /sftp
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
 
sudo vi /home/sftpuser2/.ssh/sshd_config
 
Match User sftpuser2
    ChrootDirectory /sftp/other_directory
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
修改SSH服务的启动选项,分别指定每个用户的配置文件:
ExecStart=/usr/sbin/sshd -f /home/sftpuser1/.ssh/sshd_config -f /home/sftpuser2/.ssh/sshd_config -D $OPTIONS
或者
/usr/sbin/sshd -f /home/sftpuser1/.ssh/sshd_config -f /home/sftpuser2/.ssh/sshd_config $OPTIONS
这样配置后,每个用户将利用本身的配置文件,可以分别定制他们的SSH行为。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4