首先要安装ssh,这里检查是否安装了ssh,如果没装,则要先装ssh,注意开放端口信息

ssh -V

一、创建文件目录,创建用户

# 创建文件目录
mkdir -p /home/LdRun/data/sftp/sftpuser
chown root:root /home/LdRun/data/sftp/sftpuser
chmod 755 /home/LdRun/data/sftp/sftpuser

  # 新建用户组sftp

groupadd sftp
# 新建用户sftpuser,并且设置不支持ssh系统登录,只能登录sftp服务器
# -g 用户组; -d 指定home目录; -s 不能登陆系统; -M 不创建home目录
useradd -g sftp -d /home/LdRun/data/sftp/sftpuser -M -s /sbin/nologin sftpuser

 # 设置密码

#例如: echo "123456" | passwd --stdin sftpuser
#登入账号:sftpuser  密码:123456
#/home/LdRun/data/sftp/sftpuser为sftp 为访问的路径
# echo "新密码" | passwd --stdin 用户名
echo "LandPower" | passwd --stdin sftpuser

# 由于/data/sftp/sftpuser的用户是root,其它用户都没有写的权限

# 所以要在该目录下新建一个目录用于文件的上传下载

mkdir -p /home/LdRun/data/sftp/sftpuser/upload
chown sftpuser:sftp /home/LdRun/data/sftp/sftpuser/upload
chmod 755 /home/LdRun/data/sftp/sftpuser/upload

二、配置SSH和SFTP服务器

# 防止后期配置文件出错后无法还原

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

# 打开配置文件

vi /etc/ssh/sshd_config

# 下面这几项的默认值也是它们,所以这一步可以跳过

PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile	.ssh/authorized_keys
# 注释掉这行
# Subsystem      sftp    /usr/libexec/openssh/sftp-server

 # 文件末尾添加以下内容

Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /home/LdRun/data/sftp/%u
ForceCommand internal-sftp

 # 下面两项是与安全有关

AllowTcpForwarding no
X11Forwarding no

三、防火墙相关配置

firewall-cmd --list-all       					     		# 查看已开放的端口
firewall-cmd --permanent --zone=public --add-port=22/tcp    # 开通sftp服务22默认端口
firewall-cmd --reload		                                # 刷新防火墙,重新载入

四、重启

systemctl restart sshd.service

五、windows上传测试

1.下载 WinSCP-5.19.2-Setup.exe文件

  下载地址:https://winscp.net/download/WinSCP-6.1.2-Setup.exe

2.安装后,如图输入远端地址,前面设置的用户名以及密码

centos传输文件到本地_创建文件

3.登入成功后,即可对文件读写,右侧为服务器文件

centos传输文件到本地_用户名_02

六,其余补充

SFTP描述
SSH文件传输协议(英语:SSH File Transfer Protocol,也称Secret File Transfer Protocol,中文:安全文件传送协议,英文:Secure FTP或字母缩写:SFTP)是一种数据流连接,提供文件访问、传输和管理功能的网络传输协议

SFTP可以为传输文件提供一种安全的加密方法,SFTP为SSH的一部分,采用的是SSH加密隧道,由于这种传输方式使用了加密/解密技术,安装性方面比FTP要强一些,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP

SFTP与FTP有着几乎一样的语法和功能,SFTP本身没有单独的守护进程,它必须使用sshd守护进程( 端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序

SFTP依赖的是系统自带的SSH服务,不像FTP还需要额外的进行安装(vsftp服务), SFTP是只要确保你的Linux 账号能连接,SFTP默认连接账号就是Linux root账号和密码

在CentOS7中,sftp只是ssh的一部分,一般最小化安装也会安装sshd相关的服务及配置。所以ssh相关安装在此不做描述