sftp基本介绍与搭建和使用
ssh下载地址:
https://mina.apache.org/sshd-project/downloads.html
sftp基本介绍:
sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp有着几乎一样的语法和功能。SFTP 为 SSH的一部份,和vsftpd一点关系没有,是一种传输档案至 Blogger 伺服器的安全方式。本身没有守护进程,是包含在ssh中,默认端口也是22。
sftp服务器有两种搭建方式:
1、直接在系统上新建一个用户即可,此种方式最简单,但最不安全,用户sftp登陆之后可以随意切换目录,切用户可以ssh登陆到系统,很不安全,生产环境中不会这么干,故不介绍;
2、标准sftp的搭建
sftp搭建 方式1
##系统已经有并且启动了ssh服务的情况下;
1.添加sftp用户
adduser user1
passwd user1
usermod -s /bin/false user1
usermod -d /data/wwwroot/user1/ user1
2.修改sftp配置
vi /etc/ssh/sshd_config
##找到 Subsystem sftp 这一行,修改成:
Subsystem sftp internal-sftp
UsePAM yes
Match user user1
ForceCommand internal-sftp
ChrootDirectory /data/wwwroot/user1/
##多个用户请重复配置这三行:
Match user user2
ForceCommand internal-sftp
ChrootDirectory /data/wwwroot/user2/
3.设置sftp用户目录和权限
mkdir /data/wwwroot/user1/upload chown -R sftpuser1:root /data/wwwroot/user1/upload
chmod -R 755 /data
chmod -R 775 /data/wwwroot/user1/upload
4.启动ssh服务
service sshd restart ##重启ssh服务
或者
/etc/init.d/sshd restart
或者
kill -9 `ps -ef| grep "/usr/sbin/sshd -D" | awk '{print $2}'` >/dev/null 2>&1
/usr/sbin/sshd -D &
给sftp新用户的家目录的权限设定有几个要点:
1、由 ChrootDirectory 指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是 root
2、由 ChrootDirectory 指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限(最大权限 755)
3.如果需要添加管理员用户,可以设置ChrootDirectory目录属组为sftp,然后把所有的用户和管理员用户属组均改为sftp.具体可参考Dockerfile实例部分。
或者通过软链接实现:
ln -s /sftp/wwwroot /sftp/wwwroot/admin
password=`mkpasswd admin`;useradd -b /sftp/admin admin;echo "admin:$password" | chpasswd;echo $password
SFTP搭建 方式2
##在没有ssh的镜像或者系统中;以及通过用户组方式控制sftp用户登陆;
1.ssh安装配置
yum install -y curl tar unzip which sudo initscripts openssh-server openssh-clients rsync
yum install -y libaio.so.1* ll* vim*
yum update -y libselinux
echo 'root'| passwd --stdin root
ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -q -N "" -t rsa -f /root/.ssh/id_rsa
ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_ed25519_key
cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
sed -i "/^[^#]*UsePAM/ s/.*/#&/" /etc/ssh/sshd_config
echo "Port=39535" >> /etc/ssh/sshd_config
###添加sftp用户
groupadd sftp
cat /etc/group
mkdir -p /data/sftp
useradd -d /data/sftp/mysftp -s /bin/false -g sftp mysftp
rm -rf /data/sftp/mysftp/.bash*
echo mysftp |passwd --stdin mysftp
##编辑sftp配置
vi /etc/ssh/sshd_config
##先注释下面一行,
# Subsystem sftp /usr/libexec/openssh/sftp-server
##然后添加以下配置:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
备注:
# 注释掉该行
# Subsystem sftp /usr/lib/openssh/sftp-server
# 使用系统默认的sftp服务
Subsystem sftp internal-sftp
# 匹配组名 sftp
Match Group sftp
# 指定活动目录
ChrootDirectory /data/sftp/%u
# 由ChrootDirectory指定的目录开始一直往上到系统根目录的目录属主都是root.
# 由ChrootDirectory指定的目录开始一直往上到系统根目录都不可以具有群组写入权限.
# 禁用端口转发
AllowTcpForwarding no
X11Forwarding no
# 强制执行内部SFTP,并忽略任何~/.ssh/rc中的命令
ForceCommand internal-sftp
##设置Chroot目录权限
chown root:sftp /data
chown root:sftp /data/sftp
chown root:sftp /data/sftp/mysftp
chmod 755 /data/sftp/mysftp
##新建一个目录供sftp用户mysftp上传文件
mkdir /data/sftp/mysftp/upload
chown mysftp:sftp /data/sftp/mysftp/upload
chmod 755 /data/sftp/mysftp/upload
##启动sshd服务
service sshd start
或者
/usr/sbin/sshd -D &
##验证sftp登陆使用:
sftp -P 39535 mysftp@localhost
##新建测试用户:
useradd -d /data/sftp/119sftp -s /bin/false -g sftp 119sftp
rm -rf /data/sftp/119sftp/.bash*
echo 119sftp |passwd --stdin 119sftp
chown root:sftp /data/sftp/119sftp
mkdir /data/sftp/119sftp/upload
chown 119sftp:sftp /data/sftp/119sftp/upload
chmod 755 /data/sftp/119sftp
chmod 755 /data/sftp/119sftp/upload
##登陆测试
sftp -P 39535 119sftp@localhost
sftp基本介绍与搭建和使用相关推荐
- 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群
笔记内容:搭建ELK日志分析平台(上)-- ELK介绍及搭建 Elasticsearch 分布式集群 笔记日期:2018-03-02 27.1 ELK介绍 27.2 ELK安装准备工作 27.3 安装 ...
- MySQL读写分离介绍及搭建
MySQL读写分离介绍及搭建 转载于:https://www.cnblogs.com/gotodsp/p/6511297.html
- k8s部署tomcat及web应用_k8s介绍 k8s搭建一个应用(mysql+tomcat)
k8s介绍 k8s搭建一个应用(mysql+tomcat) kubetnetes介绍 官网 https://kubernetes.io/ Kubernetes也就是k8s Kubernetes是一个开 ...
- SSM框架的介绍与搭建
SSM框架的介绍与搭建 一.简要介绍 二.SSM的搭建 三.简单的web项目测试 一.简要介绍 1. Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java ...
- PKI介绍及搭建Linux私有CA (SSL 示例)
PKI介绍及搭建Linux私有CA PKI 介绍 PKI 概念 CA 构建私有CA 步骤1:生成私钥 步骤2:生成自签证书 步骤3:为CA提供所需的目录及文件 请求证书 步骤1:查看httpd服务是否 ...
- Spring框架的介绍以及搭建
Spring框架的介绍以及搭建 1.框架和架构 1.1.什么是框架 1.2 架构的发展历程 2.Spring 2.1.Spring框架的优势 3.IOC 3.1.什么是IOC 4.Maven 4.搭建 ...
- 搭建 数字证书_CA认证介绍及搭建过程
CA认证的介绍 翻译成: 认证中心,主要用途:实现为用户发放数字证书. 认证中心(CA)功能: 证书发放,证书更新,证书撤销和证书验证 总结签证过程: 生成请求文件 CA确认申请者的身份的真实性 CA ...
- mysql-cluster集群原理介绍和搭建步骤(四个data/sql节点) (转)
MySQL簇概述 MySQL簇是一种技术,该技术允许在无共享的系统中部署"内存中"数据库的簇.通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求.此外,由于每个组件 ...
- Redis Cluster 介绍与搭建
1. Redis Cluster介绍 Redis Cluster是Redis的分布式解决方案,在Redis 3.0版本正式推出的,有效解决了Redis分布式方面的需求.当遇到单机内存.并发.流量等瓶颈 ...
最新文章
- python 如何在linux进行调试
- 成功解决ConvergenceWarning: lbfgs failed to converge (status=1): STOP: TOTAL NO. of ITERATIONS REACHED L
- evplayer2可以多设备登录吗_这么多自助设备,你都选对投放位置了吗
- ReentrantLock类源码解析
- Linux防火墙开关命令
- java linux ifstat,ifstat命令
- 【Alpha】Scrum Meeting 2
- C/C++ Npcap包实现ARP欺骗
- MyBatis-Plus 如何自动生成代码
- qt调用vc编写库文件的方法
- 控制台中画一个正方体
- VB-改变文件只读属性
- AQI(空气质量指数)分析与预测(四)
- Xubuntu22.04设置全局代理(一百五十六)
- 假设银行一年整存零取的月息为1.875%(年息为12*1.875%,年息按复利计算),现在某人手头有一笔钱,他打算在今后5年中,每年年底取出1000元作为孩子来年的教育金,到第5年孩子毕业时刚好取完这
- Only Train Once!微软浙大提出剪枝新框架OTO:无需微调即可获得轻量级架构!
- 2020年B证(安全员)考试及B证(安全员)多少钱
- 2019年的敬业福要贬值了,来看看百分百获取敬业福的终极大招。
- 检索多个word文档某个关键字并打印检索结果
- 自监督学习 | (1) Self-supervised Learning入门
热门文章
- laravel 使用passport 生成token 报错 Replicating claims as headers is deprecated and will removed
- java beetle_Beetle Web框架快速入门.pdf
- 使用定位CLLocationManager时,设置了代理,但是不走代理方法
- 即时配送的订单分配策略:从建模和优化(学习笔记)
- 通过代码快速上手C语言数据结构-栈与队列
- HDFS—Hadoop底层分布式文件存储系统
- SuperBlock损坏修复
- 什么是RAID和JBOD
- 网页直播源码与编解码
- 应用文书信小作文各种信件整理模板(建议、介绍/推荐、邀请、通知告示、纪要)