sftp服务器搭建 基于CentOS 7操作

1、前言

任意端口开启sftp服务的功能。操作步骤如下

2.1、确定服务器SFTP可用

使用Xshell工具连接SFTP服务器,输入systemctl status sshd,查看结果如下,表示机器SFTP已打开且可用

image.png

2.2、拷贝sftp配置文件

1、 拷贝/usr/lib/systemd/system/目录下的sshd.service文件,放到/etc/systemd/system/目录下,命名为:sftpd.service

cp /usr/lib/systemd/system/sshd.service  /etc/systemd/system/sftpd.service

2、 拷贝/etc/pam.d/目录下的sshd文件,放到同目录,命名为:sftpd

cp /etc/pam.d/sshd  /etc/pam.d/sftpd

3、 拷贝/etc/ssh/目录下的sshd_config文件,放到同目录,命名为:sftpd_config

cp /etc/ssh/sshd_config  /etc/ssh/sftpd_config

4、 对service和rcsftpd进行软连接

ln -sf  /usr/sbin/service  /usr/sbin/rcsftpd

5、 对sshd和sftpd进行软连接

ln -sf  /usr/sbin/sshd  /usr/sbin/sftpd

6、 拷贝/etc/sysconfig/目录下的sshd文件,放到同目录,命名为:sftp

cp /etc/sysconfig/sshd  /etc/sysconfig/sftp

2.3 修改复制好的配置文件

1、 修改/etc/systemd/system/目录下sftpd.service文件

vim /etc/systemd/system/sftpd.service

修改下图中标红的地方

 也可以直接复制粘贴

[Unit]
Description=sftpd server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=notify
EnvironmentFile=/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

2、 修改/etc/ssh/目录下的sftpd_config文件

vim /etc/ssh/sftpd_config
//配置文件第17行,将端口改为自己想要的端口
Port 12080
//配置文件第38行,禁止root登录
PermitRootLogin no
//配置文件第116行,取消该行的注释,并将sshd.pid改成sftpd.pid
PidFile /var/run/sftpd.pid
//配置文件第132行,将这行注释,并在最后添加6行
#Subsystem	sftp	/usr/libexec/openssh/sftp-server

Subsystem sftp internal-sftp
Match Group banks
ChrootDirectory /workspace/projects/sftpfile
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

3、 清空/var/run/目录下的sftpd.pid文件内容

# > /var/run/sftpd.pid

4、添加sftp的专用账户

//创建文件夹
mkdir -p /workspace/projects/sftpfile
chmod 755 /workspace/projects/sftpfile

//添加组
groupadd banks

//创建用户并添加到组(禁止ssh登录)
useradd -g banks -s /bin/false ccb
//修改用户密码
passwd ccb

//新建ccb文件夹存放对账文件
mkdir -p /workspace/projects/sftpfile/ccb

//将ccb文件夹的所有者和组为ccb:banks
chown ccb:banks /workspace/projects/sftpfile/ccb

3、 禁用selinux

setenforce 0
sed -i "s/^SELINUX\=enforcing/SELINUX\=disabled/g" /etc/selinux/config

4、重启sftpd服务

systemctl daemon-reload
systemctl start sftpd

5、添加开机启动项(选择使用)

//添加开机启动项
systemctl enable  sftpd
//查询开机启动项
systemctl list-unit-files | grep sftpd

6、sftp也可以使用密钥登录

sftp -i ccb.key  -P 3170 ccb@192.168.1.111

windows 上可以使用 winscp 工具

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值