如何部署SFTP服务?

FTP & SFTP & FTPS

1 基础知识

1.1 概念

sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。

1.2 功能

可以为传输文件提供一种安全的加密方法。

1.3 特点

1)sftp 与 ftp 有着几乎一样的语法和功能。
2)SFTP 为 SSH的一部分,是一种传输档案至 Blogger 伺服器的安全方式。
3)SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作
4)SFTP安全性非常高
5)SSH软件已经包含SFTP安全文件传输子系统

1.4 缺点

传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多

1.5 客户端工具

1.5.1 windows客户端

Core FTP,FileZilla, WinSCP,Xftp

1.5.2 linux客户端

sftp username@remote ip(or remote host name)

2 服务端配置

2.1 环境概述

ipaddress=10.168.0.169
OS=centos 6.5

2.2 环境检查

2.2.1 查看openssh的版本

ssh -V

注:要求大于4.8p1版本

2.2.2 关闭selinux

getenforce

如果显示如下:

Enforcing

则执行:

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

2.3 配置步骤

2.3.1 创建sftp的存放目录

mkdir -p /data/sftp

2.3.2 创建sftp组

groupadd sftp

2.3.3 配置sshd传输子系统

vim /etc/ssh/sshd_config

注释掉如下行:

# Subsystem       sftp    /usr/libexec/openssh/sftp-server

最后行添加如下参数

Subsystem      sftp internal-sftp
Match Group sftp
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp
        ChrootDirectory /data/sftp/%u

2.3.4 重启服务

/etc/init.d/sshd restart

2.3.5 创建sftp用户和相关目录

mkdir /data/sftp/user1/
useradd user1 -g sftp -s /bin/false -d /data/sftp/user1/upload

注:/data/sftp/user1属主必须是root,否则无法登陆。
用户根文件夹权限查看:

ll -d /data/sftp/user1/

显示如下:

drwxr-xr-x. 3 root root 4096 May 10 09:21 /data/sftp/user1

upload文件夹权限查看:

ll -d /data/sftp/user1/upload/

显示如下:

drwx------. 2 user1 sftp 4096 May 10 09:21 /data/sftp/user1/upload/

2.3.6 配置sftp用户的密码

passwd user1

2.3.7 配置脚本方式

1)新建脚本目录

mkdir ~/script

2)创建脚本

vim ~/script/addsftpu.sh

并输入如下内容

#!/bin/bash
user=$1
passwd=$2
mkdir -p /data/sftp/$user/
useradd $user -g sftp -s /bin/false -d /data/sftp/$user/upload
echo "$passwd" | passwd --stdin $user

3)授权

chmod 700 ~/script/addsftpu.sh

4)新增用户

cd ~/script
./addsftpu.sh user1 'pwd123'

3 客户端配置

3.1 新建连接

3.2 选择连接并登陆

3.3 输入密码登陆

3.4 生成加密秘钥

3.5 登陆成功


参阅文献:
http://blog.csdn.net/xinxin19881112/article/details/46831311

没有评论

发表回复

FTP & SFTP & FTPS
如何解决Windows SFTP命令的权限提示?

1 前言 一个问题,一篇文章,一出故事。 今天笔者使用windows系统如下命令连接sftp服务器时 …

Bash
如何实现SFTP自动上传下载?

1 前言 一个问题,一篇文章,一出故事。 笔者最近需要实现sftp自动上传下载,于是整理此文。 以下 …

FTP & SFTP & FTPS
如何基于Oracle Linux 9.x实现SFTP邮件认证2FA?

1 前言 一个问题,一篇文章,一出故事。 笔者想实现SFTP的2FA以便增强SFTP服务的安全性,于 …