Linux环境下SFTP搭建、新增、使用

题外话

        最近在学习sftp,所以想自己搭建一套来完,根据百度和实际搭建,记下最终实现的方案。

1、SFTP是什么

        SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。

2、SFTP搭建

(1)检查OpenSSH版本

[root@localhost ~]# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

        根据网上前辈们的说明:OpenSSH版本必须大于4.8p1,低于这个版本需要升级。我的环境大于这个版本,所以就不用升级啦。不知道如果没有升级到这个版本会出现什么问题,目前没有遇到,大家如果需要相关的问题,可以留言哈~

(2)创建用户与用户组

        根据实践证明:用户组设置成统一的名字:sftp,便于管理,当然,大家也可以根据自定义,为了方便理解,在这里我的用户和用户组分别为:sftpuser,sftp。

#创建用户组
groupadd sftp

#创建用户
useradd -g sftp -s /sbin/nologin sftpuser    #设置成用户不可登录,虽然Linux无法登录,但是sftp可以登录
passwd sftpuser
输入密码:[自定义]

(3)创建文件传送目录

         根据个人的需要,指定目录或创建一个目录,为了方便理解,我需要创建一个属于sftp用户组的目录:

#创建目录
mkdir /home/sftp
mkdir /home/sftp/sftpuser

#设置目录所属用户与组以及读写权限
chmod 755 /home/sftp
chown root:sftpuser /home/sftp/sftpuser
chmod 755 /home/sftp/sftpuser

(4)sshd_config配置文件设置

#编辑sshd_config文件
vi /etc/ssh/sshd_config
#找到以下行并注释
#Subsystem    sftp    /usr/libexec/openssh/sftp-server
#添加一行,配置一个外部子系统
Subsystem    sftp    internal-sftp
#配置传送目录和所属用户
Match User sftpuser    #指定用户,如果指定组可以使用Match Group sftp
ChrootDirectory /home/sftp/%u    #指定目录,其中%u表示对应用户名目录
ForceCommand    internal-sftp    #强制执行这里指定的命令而忽略客户端提供的任何命令
AllowTcpForwarding no    #是否允许TCP转发,默认值为"yes", 禁止TCP转发并不能增强安全性,除非禁止了用户
X11Forwarding no    #是否允许进行 X11 转发。默认值是"no",设为"yes"表示允许。如果允许X11转发并且sshd(8)代理的显示区被配置为在含有通配符的地址(X11UseLocalhost)上监听。那么将可能有额外的信息被泄漏。由于使用X11转发的可能带来的风险,此指令默认值为"no"。需要注意的是,禁止X11转发并不能禁止用户转发X11通信,因为用户可以安装他们自己的转发器。

(5)重新加载sshd

#重新加载
service sshd reload

(6)测试是否可用

[root@localhost ]$ sftp sftpuser@127.0.0.1
Connecting to 127.0.0.1...
sftpuser@127.0.0.1's password: 
sftp> pwd
Remote working directory: /
sftp> 

如果你已经执行到这一步,就表示成功啦~

3、SFTP新增

        SFTP新增,其实和配置差不多。首先,新加一个用户,比如sftpuser2;然后,在咱们刚才就创建好的/home/sftp目录下创建一个同名的目录,即:/home/sftp/sftpuser2,设置好所属用户和权限。然后,在sshd_config配置文件下的最后添加:

#配置传送目录和所属用户
Match User sftpuser2
ChrootDirectory /home/sftp/%u
ForceCommand    internal-sftp
AllowTcpForwarding no
X11Forwarding no

最后,重载sshd,新增的一个用户传送目录就搭建好啦~

4、SFTP使用

        SFTP使用其实通过help即可看到用法,在下就偷个懒,不多阐述了,以后有机会再补充吧,哈哈~

sftp> help
Available commands:
bye                                Quit sftp
cd path                            Change remote directory to 'path'
chgrp grp path                     Change group of file 'path' to 'grp'
chmod mode path                    Change permissions of file 'path' to 'mode'
chown own path                     Change owner of file 'path' to 'own'
df [-hi] [path]                    Display statistics for current directory or
                                   filesystem containing 'path'
exit                               Quit sftp
get [-P] remote-path [local-path]  Download file
help                               Display this help text
lcd path                           Change local directory to 'path'
lls [ls-options [path]]            Display local directory listing
lmkdir path                        Create local directory
ln oldpath newpath                 Symlink remote file
lpwd                               Print local working directory
ls [-1aflnrSt] [path]              Display remote directory listing
lumask umask                       Set local umask to 'umask'
mkdir path                         Create remote directory
progress                           Toggle display of progress meter
put [-P] local-path [remote-path]  Upload file
pwd                                Display remote working directory
quit                               Quit sftp
rename oldpath newpath             Rename remote file
rm path                            Delete remote file
rmdir path                         Remove remote directory
symlink oldpath newpath            Symlink remote file
version                            Show SFTP version
!command                           Execute 'command' in local shell
!                                  Escape to local shell
?                                  Synonym for help

在此鸣谢,FlyBack的博客:https://www.cnblogs.com/flyback/p/6492059.html,在下有很多部分借鉴了这篇文章,希望作者不要介意,谢谢~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值