写在前面

  搭建虚拟机,装载linux系统,在终端通过命令行,搭建SFTP服务器。创建SFTP组和用户,为组和用户指定目录,修改相应的配置文件,修改目录权限,为用户上传文件建立一个目录。通过本地CMD命令行进行上传文件测试。

1. SFTP协议

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

SFTP协议能够在客户端与服务器端建立连接,通过二者之间的控制信号和文件内容实现远程文件系统的功能。

2. SFTP服务器搭建

2.1 windows中SFTP服务器搭建

在windows系统中,默认不安装SFTP,需要下载fresSSHd软件
在这里插入图片描述
软件下载后,点击user,进行用户设置。
在这里插入图片描述
此时,完成了用户的添加
在这里插入图片描述
进行SSH端口和IP设置,端口一般默认为22.
在这里插入图片描述

给定SFTP服务器目录路径。
在这里插入图片描述
设置权限
在这里插入图片描述
此时基于windows系统的SFTP服务器搭建完毕。
在这里插入图片描述

2.2 linux系统的SFTP服务器搭建

2.2.1. 通过su命令,进入管理员权限:

$符号是用户权限,#是管理员权限:
在这里插入图片描述

2.2.2 创建sftp组

# groupadd sftp

2.2.3 创建一个sftp用户mysftp,并加入到所创建的sftp组中,同时修改密码:

# useradd -g sftp -s /bin/false sftptest
# passwd sftptest

2.2.4 创建/data/sftp/mysftp目录,并将该目录制定为mysftp组用户的home目录

# mkdir -p /data/sftp/sftptest
# usermod -d /data/sftp/sftptest sftptest

2.2.5 修改配置文件

在命令行通过vi /etc/ssh/sshd_config命令。进入到sshd_config配置文件中
键入i即可进入编辑模式,键入esc退出编辑模式。
注释掉下面这一行;
# 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
退出编辑模式后,输入:wq 保存并退出配置文件。

2.2.6 设置chroot目录权限

# chown root:sftp /data/sftp/sftptest
# chmod 755 /data/sftp/sftptest

2.2.7新建一个目录

供sftp的用户mysftp上传文件,这个文件就是文件传输的远程文件目录。
# mkdir /data/sftp/sftptest/upload
# chown sftptest:sftp /data/sftp/sftptest/upload
# chmod 755 /data/sftp/sftptest/upload

2.2.8 关闭selinux,并重启SSHD服务

setenforce 0
systemctl restart sshd.service

2.2.9 传输测试

然后在本地CMD命令行进行测试。打开cmd命令行:
键入:sftp mysftp@ip输入密码,即进行文件传输。
在这里插入图片描述
在这里插入图片描述

3. linux系统常用命令

常用命令命令说明
su进入管理员权限
vi进入文件
ip addr查看ip地址
ls查看文件目录
touch创建文件
:q不保存退出文件
:wq保存退出文件
cd切换目录
mkdir创建目录
rm删除文件
cat查看文件
ifconfig查看网卡信息

其他常用的linux命令参见另一位博主的总结(linux命令大全),十分全面。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐