[TOC]
搭建ftp服务
安装ftp
apt install vsftp
# 安装后默认开机自启
配置基础信息
vim /etc/vsftpd.conf
# 注意,此处的目录需要和local_root配置的目录一致且目录所有人必须为root
mkdir -p /home/ftp;
# 此处的值需要由vsftp改为ftp,否则使用ftp时无法登录成功
pam_service_name=ftp
# 以下内容可直接追加至文件末尾
# begin
# 此文件中的内容为系统中的用户(一个用户一行),配置后用户可访问local_root配置的目录之外的目录
chroot_list_file=/etc/vsftpd.chroot_list
chroot_local_user=YES
chroot_list_enable=YES
# 允许用户可读写目录及文件
allow_writeable_chroot=YES
# ftp的端口
listen_port=1122
# 登录的ftp用户可访问的目录
local_root=/home/ftp/
#建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。
pasv_min_port=50000
#设置被动模式下,建立数据传输可使用的端口范围的最大值。
pasv_max_port=50010
# end
# 重启服务
service vsftp restart
连接测试
ftp -P 1122 root@localhost
Connected to localhost.
220 (vsFTPd 3.0.5)
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
搭建sftp服务
安装OpenSSH Server
# 打开终端并以管理员权限运行以下命令来安装OpenSSH服务器,SFTP服务基于OpenSSH实现。
apt install openssh-server
创建sftp用户组及用户
# 设置sftp的根目录,此目录所有人必须为root,否则使用sftp登录时会提示:client_loop: send disconnect: Broken pipe
mkdir -p /home/sftp
# 允许其他人用户读写此目录
chmod 755 /home/sftp
# 创建web-admin用户允许操作的目录
mkdir -p /home/sftp/web/
# 创建sftp用户组
sudo addgroup sftp
# 创建web-admin用户,允许操作的目录为:/home/sftp/web
useradd -d /home/sftp/web -m web-admin
# 新增的用户设置不允许登录系统
usermod -G sftp -s /bin/false web-admin
# 设置目录所有人
chown -R web-admin:web-admin /home/sftp/web/
配置SFTP
vim /etc/ssh/sshd_config
# 注释掉下述内容
# Subsystem sftp /usr/lib/openssh/sftp-server
# 新增下述内容
# begin
# sftp config
Subsystem sftp internal-sftp
# 允许sftp用户组的人员访问sftp
Match Group sftp
# 此目录为sftp默认的根目录,拥有者必须为root
ChrootDirectory /home/sftp
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
# end
# 重启服务
service sshd restart
连接测试
sftp web-admin@localhost
web-admin@localhost's password:
Connected to localhost.
sftp>
参考连接:新建立的sftp用户,连接时client_loop: send disconnect: Broken pipe 网络错误:软件造成的连接中止