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;
    }

}

  #######################仅供参考,请勿喷!!!!!

posted @ 2021-10-14 17:02  卜闻卜问卜听卜在乎  阅读(428)  评论(0编辑  收藏  举报