SFTP服务搭建与安装

SFTP搭建与安装


1.SFTP简介

        sftp是ssh的一部分,sftp没有单独的守护进程,其必须使用sshd守护进程(默认端口为22)进行相应的连接操作。

2.分离SSH和SFTP服务

       系统内开启ssh服务和sftp服务都是通过/usr/sbin/sshd这个后台程序监听22端口,而sftp服务作为一个子服务,是通过/etc/ssh/sshd_config配置文件中的Subsystem实现的,如果没有配置Subsystem参数,则系统是不能进行sftp访问。

1.复制ssh文件重名为sftp的文件

#复制/usr/lib/systemd/system/sshd.service为/etc/systemd/system/sftpd.service

[root@lv ~]# cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service

#复制/etc/pam.d/sshd为/etc/pam.d/sftpd

[root@lv ~]# cp /etc/pam.d/sshd /etc/pam.d/sftpd

#复制/etc/ssh/sshd_config为/etc/ssh/sshd_config

[root@lv ~]# cp /etc/ssh/sshd_config /etc/ssh/sftpd_config

#将sshd与sftpd创建软链接

[root@lv ~]# ln -sf /usr/sbin/sshd /usr/sbin/sftpd

#复制/etc/sysconfig/sshd为/etc/sysconfig/sftp

[root@lv ~]# cp /etc/sysconfig/sshd /etc/sysconfig/sftp

#复制/var/run/sshd.pid为/var/run/sftpd.pid,并清空/var/run/sftpd.pid

[root@lv ~]# cp /var/run/sshd.pid /var/run/sftpd.pid[root@lv ~]# > /var/run/sftpd.pid

2.修改配置文件

vim /etc/systemd/system/sftpd.service

#删除sftpd.service内容并添加如下内容[Unit]Description=sftpd server daemonDocumentation=man:sshd(8) man:sshd_config(5)

After=network.target

sshd-keygen.serviceWants=sshd-keygen.service

[Service]

Type=notifyEnvironmentFile=/etc/sysconfig/sftp

ExecStart=/usr/sbin/sftpd -f /etc/ssh/sftpd_config

ExecReload=/bin/kill -HUP $MAINPID

KillMode=process

Restart=on-failure

RestartSec=42s

[Install]

WantedBy=multi-user.target

3.修改sftp配置文件

vim /etc/ssh/sftpd_config

修改Port:Port 22

修改PidFile:PidFile /var/run/sftpd.pid

#注释

#Subsystem sftp /usr/libexec/openssh/sftp-server

#文件末尾添加如下内容

Subsystem sftp internal-sftp

Match Group sftp

ForceCommand internal-sftp

AllowTcpForwarding no

#配置解释:

Subsystem sftp internal-sftp                 #指定使用sftp服务使用系统自带的

internal-sftpMatch Group sftpusers     #匹配sftp组的用户,若要匹配多个组,可用逗号分开X11Forwarding no                               #禁止用户使用端口转发

AllowTcpForwarding no                      #禁止用户使用端口转发

ForceCommand internal-sftp              #只能用于sftp登录

ChrootDirectory /home/sftp                 #限制用户的根目录

4.创建用户与目录

#使用root用户创建用户组,组名为sftp;创建sftp用户,用户名为sftp,并设置密码groupadd sftp

useradd -g sftp -s /sbin/nologin sftp

passwd sftp

#使用root用户新建目录/data,将其设置为sftp的home目录,并指定目录权限

mkdir -p /data

usermod -d /data sftp

#设置Chroot目录权限

chown root:resftp /data

chmod 755 /data

#设置sftp用户可以操作的目录

mkdir -p /data/sftp/home

chown sftp:sftp /data/sftp/home

chmod 755 /data/sftp/home

5.启动

#使修改的sshd配置生效

systemctl daemon-reload

#启动

sftpsystemctl start sftpd                                #启动sftp

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容