SFTP 服务搭建

1. 介绍

sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

2. sftp搭建

2.1 创建SFTP 主目录

mkdir -p /data/sftp

2.2 创建SFTP 用户组

groupadd sftp

2.3 创建FTP用户,并指定home到SFTP主目录下

以下创建了3个SFTP用户

useradd -g sftp -s /sbin/nologin -d /data/sftp/ftp1 ftp1
useradd -g sftp -s /sbin/nologin -d /data/sftp/ftp2 ftp2
useradd -g sftp -s /sbin/nologin -d /data/sftp/ftp3 ftp3

2.4 设置FTP用户密码

echo password1 | passwd --stdin ftp1
echo password2 | passwd --stdin ftp2
echo password3 | passwd --stdin ftp3

2.5 修改 sshd_config 配置文件

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

vi /etc/ssh/sshd_config

#找到并注释
#Subsystem      sftp    /usr/libexec/openssh/sftp-server

#添加
Subsystem       sftp    internal-ftp
Match Group     sftp
ChrootDirectory /data/sftp/%u
ForceCommand    internal-sftp
AllowTcpForwarding no
X11Forwarding no

  

解释:

Subsystem      sftp    internal-sftp

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

Match Group sftp

这行用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割

当然,也可以匹配用户

Match User mysftp

这样就可以匹配用户了,多个用户名之间也是用逗号分割,但我们这里按组匹配更灵活和方便

ChrootDirectory /data/sftp/%u

用chroot将用户的根目录指定到/data/sftp/%u,%u代表用户名,这样用户就只能在/data/sftp/%u下活动,chroot的含义,可以参考这里:http://www.ibm.com/developerworks/cn/linux/l-cn-chroot/

ForceCommand    internal-sftp

指定sftp命令

AllowTcpForwarding no

X11Forwarding no

这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉

2.6 修改目录权限

chown root:sftp /data/sftp/*
chmod 755 /data/sftp/*

解释:

目录的权限设定有两个要点:

1、由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root

2、由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限

2.7 创建ftp用户上传下载目录

照上面设置后,在重启sshd服务后,FTP 用户已经可以登录,但使用 chroot 指定根目录后,根应该是无法写入的.

mkdir /data/sftp/ftp1/upload
mkdir /data/sftp/ftp2/upload
mkdir /data/sftp/ftp3/upload

chown ftp1:sftp /data/sftp/ftp1/upload
chown ftp2:sftp /data/sftp/ftp2/upload
chown ftp3:sftp /data/sftp/ftp3/upload

chmod 755 /data/sftp/ftp1/upload
chmod 755 /data/sftp/ftp2/upload
chmod 755 /data/sftp/ftp3/upload

2.8 重启SSHD 服务

service sshd restart

2.9 登录验证

[[email protected] ~]# sftp [email protected]
Connecting to localhost...
[email protected]‘s password:
sftp> dir
upload
sftp> cd upload
sftp>   lcd /etc
sftp> put passwd
Uploading passwd to /upload/passwd
passwd                                                             100% 1825     1.8KB/s   00:00
sftp> dir
passwd
sftp>

  

完成!

 

如果还能不能登录,请检查

1.防火墙是否关闭

2.SELINUX 是否关闭

#关闭命令
service iptables stop
chkconfig iptables off

sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/selinux/config;
setenforce 0

参考:

http://www.cnblogs.com/flyback/p/6492059.html

http://blog.sina.com.cn/s/blog_4fd50c3901018a0l.html

原文地址:https://www.cnblogs.com/plluoye/p/8862081.html

时间: 2024-10-10 15:48:56

SFTP 服务搭建的相关文章

SFTP服务搭建

SFTP服务搭建过程记录 系统环境:CentOS6.8 测试结果如下: 注释(1): 文本编辑器打开 /etc/ssh/sshd_config,找到如下这行,用#符号注释掉,大致在文件末尾处.# Subsystem      sftp    /usr/libexec/openssh/sftp-server  在文件最后面添加如下几行内容,然后保存. Subsystem       sftp    internal-sftp Match Group sftp ChrootDirectory /da

sftp服务搭建流程

需求:公司需要做一个自动化导出账单,账单原始数据由第三方提供,为拿到原始sql数据,需要给第三方提供一台sftp服务器用来上传sql表. 整体流程:使用系统自带的sftp服务,首先创建给客户使用的sftp账号,让他只能在指定的目录下进行添加.修改.删除操作,并且只能使用sftp登录服务器,不能用ssh操作,保证可以上传,下载即可.搭建完毕测试上传及下载.提供sftp服务的有vsftpd和internal-sftp,这里用的是系统自带的internal-sftp,操作步骤如下--------- O

搭建sftp服务+nginx代理

在公司,经常会用到sftp服务,比如两个公司对接生产项目,其中一方,要在sftp上上传pdf文件,另一方公司要在sftp服务器上用nginx代理直接下载pdf文件.下面就说说我在实际中应用到的sftp服务+nginx代理的配置方法: 一.环境: 192.168.16.12     centos6.5 在Centos 6.5环境使用系统自带的internal-sftp搭建SFTP服务器. 二.查看版本 查看openssh的版本,使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p

Linux 搭建Sftp服务并进行权限设置

一.最近接到一个项目组的需求搭建文件服务器,需求如下 1.用户:amovs.upload.download 2.组:amovs.dataload.download 3.具体需求是upload和download的家目录都为同一个目录dataload 4.upload能上传也就是能读能写.download用户只能下载 5.amovs因需要进行批量自动化删除日志等操作,所以对于dataload目录权限需要读.写权限 6.并且upload和download只能使用sftp软件上传和下载文件使用,不能作为

Linux基础服务搭建及管理

20141010V1 一.网络基础概念: OSI七层协议 TCP/IP协议 三.局域网内常用服务搭建 远程连接服务器(取得shell进行工作) 文字接口明文传输:Telnet.RSH:文字接口加密:SSH:图形接口:XDMCP.VNC.XRDP 加密方法简介: 对称加密 公钥加密私钥解密 单向加密(1雪崩效应 2定长输出) MD5 SHA1 SSH--secure shell protocol 22号端口 Client --> Server 连接步骤:1 服务器建立公钥文件 2 客户端主动连接要

Sftp服务器搭建和限制用户目录

Sftp服务器搭建和限制用户目录 概述:公司对外客户上传账户清单,以前每个月都是用FTP上传,出于安全考虑改用sftp上传但又要限制用户根目录,为此在网上查了很多资料,在此记录下自己心得. 目录: 什么sftp服务器 怎么搭建sftp服务器 怎么限制用户目录 常见错误 什么sftp服务器 sftp是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.sftp 与 ftp 有着几乎一样的语法和功能.SFTP 为 SSH的一部份,

[转帖]FTP服务搭建与配置

FTP服务搭建与配置 https://blog.csdn.net/zhengyshan/article/details/81058194 原作者写的很好.. 比我写的好一百倍.. 原创zhengyshan 发布于2018-07-15 22:52:06 阅读数 69 收藏展开 FTP介绍FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输. FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务

linux下vsftp服务搭建

实验拓扑: Linux Client -----RHEL5.9(vmnet1)----------(vmnet1) Win7 Client 实验一:测试默认安装vsftpd的结果 匿名用户与本地用户都可以登录 匿名用户登录到/var/ftp,只能下载不能上传 本地用户登录到本地用户的家目录,可以上传和下载 [[email protected] ~]# rpm -q vsftpd  //检查软件包是否安装 package vsftpd is not installed [[email protec

centos DNS服务搭建 第三十节课

centos  DNS服务搭建     第三十节课 上半节课 下半节课 一. DNS原理相关DNS 为Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种服务机制.其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析. DNS使用TCP和UDP, 端口号都是53, 但它主要使用UDP,服务器之间备份使用TCP.全世界只有13台“根”服务器,1个主根服务器放在美国,其他12台为辅根服务器,DN