sftp服务器部署
工作中很容易遇到需要部署sftp文件服务器,总是会遇到各种问题,现做一次简单的记录:
sftp采用的是ssh加密隧道,安装性方面较ftp强,而且依赖的是系统自带的ssh服务,不像ftp还需要额外的进行安装
第一步:创建用户供sftp使用
useradd mysftp #修改mysftp密码 echo "123456"|passwd --stdin "mysftp"
第二步:创建sftp文件夹并授权
mkdir -p /data/sftpfile
chown -R mysftp.mysftp /data/sftpfile/ ### 将文件夹的属主属组设置为mysftp
第三步:修改配置文件
vim /etc/ssh/sshd_config
找到下面这行注释掉:
# Subsystem sftp /usr/libexec/openssh/sftp-server
##添加:
Subsystem sftp internal-sftp
match Group mysftp ##匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /data/sftpfile ##sftp主目录指定到/var/www/html/upoads/ ForceCommand internal-sftp ##指定sftp命令 AllowTcpForwarding no ##用户不能使用端口转发 X11Forwarding no ##用户不能使用端口转发
测试配置是否正常
sshd -t ###测试配置文件是否正确 systemctl restart sshd ####重启sshd服务器
第四步:测试是否部署正常
sftp admin@192.168.111.5
出错:
经检查应该事用户属组问题导致,修改文件属组信息ok
chown root:mysftp sftpfile/
部署测试完成。
提供信息:
hostname: username: password: port:
设置nginx配置url
server { listen xxxx; server_name hostname; charset utf-8; client_max_body_size 1024M; location ^~ /file/ { proxy_pass http://192.168.111.5:xxxx/; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffers 256 4k; proxy_max_temp_file_size 0; proxy_connect_timeout 30; proxy_cache_valid 200 302 10m; proxy_cache_valid 301 1h; proxy_cache_valid any 1m; } }
#######################仅供参考,请勿喷!!!!!