首页 > 其他分享 >sftp部署

sftp部署

时间:2023-11-08 18:11:06浏览次数:33  
标签:jason 部署 ChrootDirectory sftp internal 根目录 权限

SFTP(Secure File Transfer Protocol ):sftp为ssh自带的服务,无需额外安装软件,使用和配置很方便
SFTP的优势主要有两点:
1、不需要再配置个FTP服务端;
2、SSH协议是安全传输,上传和下载是经过加密的,安全方面高于vsftp,由于传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。但sftp的安全性要比ftp高,因此sftp通常用于报表、对账单等对安全性要求较高的场景。

 

步骤:

系统环境配置

1、关闭Linux 的selinux

2、安装penssh-server

openssh-server 版本至少得 4.8p1, 因为配置权限需要版本添加的新配置项 ChrootDirectory 来完成

# yum -y install openssh-server  openssh-clients
# ssh  -V

3、新建只用来登录sftp的账户

groupadd sftp
useradd -g sftp -s /sbin/nologin jason
passwd jason

4、sshd.conf配置

vi -b /etc/ssh/sshd_config
注释掉下面这一行:
Subsystem  sftp    /usr/libexec/openssh/sftp-server
添加: Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /var/lib/container X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp

注:这里要注意一下,上面这些代码务必放在最后,因为必须要“UseDNS no”后面

 

配置项说明:

#这行指定使用sftp服务使用系统自带的internal-sftp

Subsystem sftp internal-sftp

#这行用来匹配用户

Match User sftpuser

#用chroot将用户的根目录指定到/home/sftp,这样用户就只能在/home/sftp下活动

ChrootDirectory /home/sftp

AllowTcpForwarding no

#指定sftp命令

ForceCommand internal-sftp

 

#启用internal-sftp
Subsystem       sftp    internal-sftp
#限制www用户的根目录
Match User www
    ChrootDirectory /home/sftp
    ForceCommand    internal-sftp
#限制blog和pay用户的根目录
Match Group sftp
    ChrootDirectory %h
    ForceCommand    internal-sftp

 

创建共享目录

mkdir -p /var/lib/container/jason

注意SFTP共享的根目录是 /var/lib/container/

5、修改目录权限

1、ChrootDirectory的权限问题:

(1)设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限只能是 750 或者 755。

(2)目录开始一直往上到系统根目录为止的目录拥有者都只能是 root,用户组可以不是 root。

(3)目录开始一直往上到系统根目录为止都不可以具有群组写入权限

2、共享目录权限问题:

目录所有者为jason,所有组为sftp,所有者有写入权限,而所有组无写入权限,权限为700、750或者755。可以根据情况具体设置

chown -R root:root /var/lib/container
chmod 755 /var/lib/container
chown -R jason:sftp /var/lib/container/jason
chmod 775 /var/lib/container/jason

 

6、重启sshd服务

systemctl restart sshd

 

7、测试

sftp -P 10022 [email protected]

 

常见问题:

SFTP Permission denied处理
com.jcraft.jsch.SftpException: Permission denied

问题的原因是,SFTP服务器的SELINUX没关闭。
packet_write_wait: Connection to 192.168.1.202 port 10022: Broken pipe
Couldn't read packet: Connection reset by peer

原因是ChrootDirectory的权限问题

 

参考:

https://www.cnblogs.com/yyy-blog/p/11130302.html
https://blog.csdn.net/michaelwoshi/article/details/94184288
https://cloud.tencent.com/developer/article/1844272
https://support.huawei.com/enterprise/zh/knowledge/EKB1100061659
https://www.cnblogs.com/wish123/p/7071317.html

 

标签:jason,部署,ChrootDirectory,sftp,internal,根目录,权限
From: https://www.cnblogs.com/xiaoyou2018/p/17817964.html

相关文章

  • 蓝绿部署:实现无缝可靠的软件发布
    在快节奏的软件开发世界中,在不造成中断或停机的情况下向用户提供新功能和更新是一项至关重要的挑战。这就是蓝绿部署策略有用的地方。组织可以通过使用称为“蓝绿部署”的发布管理策略,以安全有效的方式推出其软件的新版本。在快节奏的软件开发世界中,组织努力快速可靠地部署新功能和......
  • 单节点flink部署
    单节点flink推荐作用于测试环境,最好不要使用到线上环境一、环境配置:1、安装Java至少1.8版本https://www.cnblogs.com/xiaoyou2018/p/9945272.html2、系统环境变量vi-b/etc/profileexportFLINK_HOME=/opt/flink-1.18.0exportPATH=$PATH:$FLINK_HOME/bin 二、安装f......
  • linux单机部署minio
    1下载安装包centos环境为例wgethttps://dl.min.io/server/minio/release/linux-amd64/minio2给minio赋权chmod+xminio3设置用户名、密码/etc/profile文件中配置环境变量exportMINIO_ACCESS_KEY=adminexportMINIO_SECRET_KEY=admin1234564创建存储目录及日......
  • Java打包镜像部署
    Java打包镜像DockerfileFROMopenjdk:17WORKDIR/opt/data-hubCOPYtarget/data-hub.jar./EXPOSE9843ENTRYPOINT["java","-jar","data-hub.jar"]构建镜像命令dockerbuild-toldweipro/data-hub:latest.运行镜像dockerrun-p9843:9843-......
  • 【案例分享】部署华为防火墙确保园区出口安全
    部署华为防火墙确保园区出口安全案例本案例将以园区典型组网为例,主要介绍园区出口安全的部署。具体业务安全要求如下:内网用户可以正常访问Internet资源,但只能访问教育/科学类、搜索/门户类网站。为了防止公司机密文件的泄露,禁止员工上传常见文档文件、开发文件(C、CPP、JAVA)以及压缩......
  • minio对象存储单点部署
    1.裸机部署#01.下载软件包mkdir/app/tools-pcd/app/toolswgethttps://dl.minio.io/server/minio/release/linux-amd64/minio#02.授权chmod+xminio#03.创建数据目录mkdir/data/minio-p#03.编写启动脚本cat>/usr/lib/systemd/system/minio.service<......
  • Java连接服务器的两种方式SFTP和FTP
    https://www.jb51.net/article/276407.htm在项目开发中,一般文件存储很少再使用SFTP服务,但是也不排除合作伙伴使用SFTP来存储项目中的文件或者通过SFTP来实现文件数据的交互,这篇文章主要介绍了Java集成FTP与SFTP连接池−目录区别FtpUtilSFTPUtil问题区别FTP是一种文件传输协议,一般是......
  • NETCore,离线部署Linux ,离线部署 libgdiplus
    背景错误信息:Unabletoloadsharedlibrary‘libgdiplus‘oroneofitsdependencies解析:libgdiplus是Linux支持Netcore的图形库,比如System.Drawing要用,在线安装都容易,离线就处理起来恶心了以下事爬坑记录,思路:在有网的Linux下载依赖包,然后再拷贝rmp包去离线服务器安装参......
  • kkfileview部署遇到的问题---权限
    运行了一段时间的在线预览,程序突然就启动不起来了,想着重新部署也比较简单,就重新部署吧,然后就开始一系列问题:一、基础环境(1检测kkfileview需要的基础软件是否完备OpenOffice无法打开,基本确定是OpenOffice问题;(2j jdk环境正常; 二、安装OpenOffice (1、卸载OpenOffice; ......
  • 一、minikube部署单机k8s环境
    一、minikube部署单机k8s环境注意:此处为方便测试,使用minikube部署单机k8s环境,生产环境请根据实际情况操作1.安装docker-ce依赖安装:yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2wget添加docker软件源:yum-config-manager--add-repohttps://mirrors.aliyun.co......