zoukankan      html  css  js  c++  java
  • SFTP配置

    SFTP使用场景

    ftp是大多数网站的文件传输选择工具,但ftp并不是非常安全,并且在centos上搭建的vsftpd也非常的不稳定,偶尔会出现权限问题,例如500、或是账号密码不正确等等。

    而SFTP是基于默认的22端口,是ssh内含的协议,只要启动了sshd就可以使用。

    建议:更高的效率使用FTP协议,更安全的通信使用SFTP协议。

    FTP是一种文件传输协议,一般是为了方便数据共享的。包括一个FTP服务器和多个FTP客户端。FTP客户端通过FTP协议在服务器上下载资源。而SFTP协议是在FTP的基础上对数据进行加密,使得传输的数据相对来说更安全。但是这种安全是以牺牲效率为代价的,也就是说SFTP的传输效率比FTP要低(不过现实使用当中,没有发现多大差别)。个人肤浅的认为就是:

    FTP要安装,SFTP不要安装。 
    SFTP更安全,但更安全带来副作用就是的效率比FTP要低些。

     

    用法

     
    1. sftp:/root> help
    2. bye finish your SFTP session
    3. 退出sftp
    4. cd change your remote workingdirectory
    5. 更改远程服务器工作目录
    6. clear clear screen
    7. 清屏
    8. exit finish your SFTP session
    9. explore explore your local directory
    10. 导入本地目录
    11. get download a file from theserver to your local machine
    12. 从远程服务器上下载文件到本机
    13. help give help
    14. 查找帮助
    15. lcd change and/or print localworking directory
    16. 切换本地当前工作目录
    17. lls list contents of a localdirectory
    18. 列出本地当前目录的内容
    19. lpwd print your local workingdirectory
    20. 打印当前工作目录
    21. ls list contents of a remotedirectory
    22. 列出远程服务器目录内容
    23. mkdir create a directory on theremote server
    24. 在远程服务器上创建一个目录
    25. mv move or rename a file onthe remote server
    26. 搬移或重命名一个的远程服务器文件
    27. put upload a file from yourlocal machine to the server
    28. 将本机的文件上传到远程服务器
    29. pwd print your remote workingdirectory
    30. 打印远程服务器工作路径
    31. quit finish your SFTP session
    32. 退出
    33. rename move or rename a file onthe remote server
    34. 搬移或重命名一个的远程服务器文件
    35. rm delete a file
    36. 删除一个文件
    37. rmdir remove a directory on theremote server
    38. 在远程服务器上删除一个目录删除一个目录
    39. 2、常用的为上传下载
    40. 1)、get
    41. 从远程服务器上下载一个文件存放到本地,如下:
    42. 先通过lcd切换到本地那个目录下,然后通过get file
    43. >> lcd d: #表示切换到本地的d盘下
    44. >> get ./test.sql   #这样就将当前文件下载本地的d盘下
    45. 2)、put
    46. 是将本地的文件上传到远程服务器上,如下:
    47. >> put #在windows下弹出选择文件的窗口
    48. 3)、lcd
    49. 先通过lcd切换到本地那个目录下
    50. >> lcd c: #表示切换到本地的c盘下
    51. 4)、lls
    52. #显示当前目录下的所有文件
    53. 5)、pwd
    54. #显示当前目录
     

    centos7搭建SFTP

     

    创建sftp组

    groupadd sftp

    cat /etc/group

     

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

    useradd -g sftp -s /bin/false mysftp

    passwd mysftp

     

    新建目录,指定为mysftp用户的主目录

    mkdir -p /sftp/mysftp

    usermod -d /sftp/mysftp mysftp

     

    编辑配置文件/etc/ssh/sshd_config

    vim /etc/ssh/sshd_config

     
    1. # Subsystem sftp /usr/libexec/openssh/sftp-server
    2. 将如下这行用#符号注释掉
     

    并在文件最后面添加如下几行内容然后保存(最好放在文件末尾)

     
    1. Subsystem sftp internal-sftp
    2. Match Group sftp
    3. ChrootDirectory /sftp/%u
    4. ForceCommand internal-sftp
    5. AllowTcpForwarding no
    6. X11Forwarding no

     
    1. Subsystem sftp internal-sftp #这行指定使用sftp服务使用系统自带的internal-sftp
    2. Match User sftpuser #这行用来匹配用户
    3. ChrootDirectory /datas/www #用chroot将用户的根目录指定到/datas/www ,这样用户就只能在/datas/www下活动
    4. AllowTcpForwarding no
    5. ForceCommand internal-sftp #指定sftp命令
     

    设置Chroot目录权限

    chown root:sftp /sftp/mysftp 
    文件夹所有者必须为root,用户组可以不是root

    chmod 755 /sftp/mysftp 
    权限不能超过755,否则会导致登录报错,可以是755

     

    新建一个目录供stp用户mysftp上传文件,这个目录所有者为mysftp所有组为sftp,所有者有写入权限所有组无写入权限

    mkdir /sftp/mysftp/upload

    chown mysftp:sftp /sftp/mysftp/upload

    chmod 755 /sftp/mysftp/upload

     

    关闭selinux并重启sshd服务,然后测试

    setenforce 0

    service sshd restart

     

    在其他服务器上进行验证,sftp 用户名@ip地址

    sftp mysftp@x.x.x.x

  • 相关阅读:
    python3-cookbook笔记:第十三章 脚本编程与系统管理
    python3-cookbook笔记:第十二章 并发编程
    python3-cookbook笔记:第十章 模块与包
    python3-cookbook笔记:第九章 元编程
    python3-cookbook笔记:第八章 类与对象
    python3-cookbook笔记:第七章 函数
    python3-cookbook笔记:第六章 数据编码和处理
    python3-cookbook笔记:第五章 文件与IO
    python中的列表推导式
    python的类属性、实例属性、类方法、静态方法
  • 原文地址:https://www.cnblogs.com/linyaonie/p/13438265.html
Copyright © 2011-2022 走看看