SFTP服务器部署及常用命令汇总

一、SFTP是什么?
SFTP(SSH File Transfer Protocol)是安全文件传送协议,可以为传输文件提供一种安全的网络的加密方法。sftp 与ftp 有着几乎一样的语法和功能。
在计算机领域,SSH 文件传输协议(英语:SSH File Transfer Protocol,也称 Secret File Transfer Protocol,中文:安全文件传送协议,英文:Secure FTP 或字母缩写:SFTP)是一数据流连线,提供文件访问、传输和管理功能的网络传输协议。由互联网工程任务组(IETF)设计,透过 SSH 2.0 的扩展提供安全文件传输能力,但也能够被其他协议使用。

即使 IETF 在网络草案数据阶段时,这个协议是在 SSH-2 文件中描述,它能够使用在许多不同的应用程序,例如安全文件传输在传输层安全(TLS)和传输信息管理于虚拟专用网应用程序。这个协议是假设运行在安全信道,例如 SSH,服务器已经认证客户端,并且客户端用户可利用协议。

与早期的 SCP 协议只允许文件传输相比,SFTP 允许对远程文件进行更广泛的操作——这更像一个远程文件系统协议。一个 SFTP 客户端与 SCP 的能力比较包括额外的恢复中断传输,目录列表和远程文件移动。
二、部署步骤
1、创建sftp组

groupadd sftp

2、创建测试用户,并设置解释器为/bin/false

/bin/false是最严格的禁止login选项,一切服务都不能用
/sbin/nologin只是不允许login系统

useradd -g sftp -s /bin/false sftptest

3、给测试用户设置密码

passwd sftptest

4、创建数据目录

mkdir -p /sftp/sftptest

5、设置测试账户访问目录的权限

usermod -d /sftp/sftptest sftptest

6、设置ssh配置文件

vi /etc/ssh/sshd_config 
......
Subsystem sftp /usr/libexec/openssh/sftp-server    ##注释掉该行
......
在末尾添加以下内容
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
......

7修改测试目录的所有者和所属组

chown root:sftp /sftp/sftptest

8、给测试目录设置权限

chmod 755 /sftp/sftptest

9、创建测试目录

mkdir /sftp/sftptest/test

10、修改测试目录的所有者和所属组

chown sftptest:sftp /sftp/sftptest/test

11、测试目录设置权限

chmod 755 /sftp/sftptest/test

12、关闭防火墙

systemctl stop firewalld

13、关闭防火墙开机启动

systemctl disable firewalld

14、关闭selinux

vi /etc/selinux/config 
......
SELINUX=disabled
......

15、重启ssh服务

service sshd restart

16、测试登录

sftp -P22 sftptest@sftp服务器地址

三、常用命令
1、使用命令?或者help可以查看命令帮助信息,如下:

sftp> ?
Available commands:
bye                                退出 sftp
cd path                            更改远程目录到 'path'
chgrp [-h] grp path                将文件 'path' 的组更改为 'grp'
chmod [-h] mode path               将文件 'path' 的权限更改为 'mode'
chown [-h] own path                将文件 'path' 的属主更改为 'own'
df [-hi] [path]                    显示当前目录的统计信息或包含 'path' 的文件系统
exit                               退出 sftp
get [-afpR] remote [local]         下载文件
help                               显示这个帮助文本
lcd path                           更改本地目录到 'path'
lls [ls-options [path]]            显示本地目录列表
lmkdir path                        创建本地目录
ln [-s] oldpath newpath            符号链接远程文件
lpwd                               显示本地工作目录
ls [-1afhlnrSt] [path]             显示远程目录列表
lumask umask                       将本地umask设置为 'umask'
mkdir path                         创建远程目录
progress                           切换是否显示文件传输进度
put [-afpR] local [remote]         上传文件
pwd                                显示远程工作目录
quit                               退出 sftp
reget [-fpR] remote [local]        恢复下载文件
rename oldpath newpath             重命名远程文件
reput [-fpR] local [remote]        恢复上传文件
rm path                            删除远程文件
rmdir path                         删除远程目录
symlink oldpath newpath            符号链接远程文件
version                            显示 SFTP 版本信息
!command                           在本地shell中执行 'command'
!                                  启动本地shell
?                                  帮助信息
sftp> 

2、退出
退出命令有3个,直接输入一个回车即断开sftp连接

bye quit exit

3、pwd和lpwd
pwd是看远端服务器的目录, 即sftp服务器默认的当前目录
lpwd是看linux本地目录

4、ls和lls
ls是看sftp服务器下当前目录下的列表
lls是看linux当前目录下的列表
5、put a.txt
这个是把linux当前目录下的a.txt文件上传到sftp服务器的当前目录下。


```bash
sftp> put /home/ryuu/test.txt 
Uploading /home/ryuu/test.txt to /home/ryuu/test.txt
/home/ryuu/test.txt                           100%    0     0.0KB/s   00:00    
sftp> ls
Desktop         Documents       Downloads       IOSAPP          Pictures        
Templates       config.json     derby.log       fontconfig      hello           
nohup.out       share           test.txt
sftp> 

6、get
这个是把sftp服务器的文件下载到linux当前目录下

sftp> get /home/ryuu/hello
Fetching /home/ryuu/hello to hello
/home/ryuu/hello                              100%  174    45.4KB/s   00:00    
sftp>

7、!command
这个是指在linux上执行command这个命令, 比如!ls是列举linux当前目录下的东东, !rm a.txt是删除linux当前目录下的a.txt文件。
这个命令非常非常有用, 因为在sftp> 后输入命令, 默认值针对sftp服务器的, 所以执行rm a.txt删除的是sftp服务器上的a.txt文件, 而非本地的linux上的a.txt文件。

sftp> ! w
 10:27:39 up  2:07,  1 user,  load average: 1.04, 1.38, 1.96
USER     TTY      来自           LOGIN@   IDLE   JCPU   PCPU WHAT
kei      :0       :0             08:20   ?xdm?  38:27   0.01s /usr/lib/gdm3/g
sftp> 
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值