相比FTP, SFTP(SH File Transfer Protocol)是一个安全的文件传输协议。(http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol)它工作在Secure Shell(SSH)上,可以确保文件被加密传输。

事由是想在wordpress上装个markdown插件,提示如果自动安装需要有SFTP。后来才看清楚不是SFTP,是FTPS,害我白忙活半天。

不过,也算是有收获吧,BAIDU了一晚上,把SFTP配置搞定了!下面就把几个要点记录下:

一、查看是否已经安装SSH(sftp就是基于SSH的)

1、命令:dpkg -l | grep ssh 查看是否安装
2、命令:dpkg -L | grep ssh 查看安装路径
3、如果没有安装,那么执行命令安装:apt install ssh-server

二、查看ssh运行状态

1、命令 :ps -ef | grep ssh 查看有无运行
2、命令:netstat -ntlp 查看监听端口

三、配置SFTP

1、默认能登录SSH的用户都可以使用SFTP传输文件的。为了便于管理,我们需要新增一个SFTP的用户组。该用户组只允许使用SFTP,不允许使用SSH登录终端。
1.1 创建sftp-users用户组
addgroup sftp-users
1.2 创建用户
adduser sftp 或者执行下行:
useradd -M -p password -s /bin/nologin sftp
1.3 将用户移动倒sftp-users,并禁止shell权限
usermod -G sftp-users -s /bin/false sftp
1.4 创建ssh-users用户组
addgroup ssh-users
1.5 将管理员(或其他需要使用ssh的普通用户)添加到ssh-users用户组
usermod -a -G ssh-users root

2、创建“监狱”文件夹,将普通sftp固定在“监狱”文件夹中
mkdir /home/sftp
mkdir /home/sftp/sftp_share
chown root:sftp-users /home/sftpsftp_share/
chmod 770 /home/sftpsftp_share/

3、配置/etc/ssh/sshd_config文件
vim /etc/ssh/sshd_config
在文件最后增加如下几行:

# 配置允许使用ssh的用户组,注意,千万别漏掉ssh-uers
AllowGroups ssh-users sftp-users
# 匹配sftp-users用户组
Match Group sftp-users
# 只允许访问/home/sftp目录
ChrootDirectory /home/sftp
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp

4、重启ssh服务(不用重启系统)
service ssh restart

Leave a Reply

Your email address will not be published. Required fields are marked *