zoukankan      html  css  js  c++  java
  • sshd和sftpd服务分离

    前因

      同事之前项目需求:客户现场一直使用ftp,因客户现场环境问题,客户提出使用sftp替换ftp;同事一直使用sftp 命令连接,我说你可以使用ssh直接登上系统查看不是更方便。同事来了句,ssh可能被限制,只能使用sftp访问。我当时就蒙了,没好意思说,因为我的印象中sftp是依赖于sshd服务的,和sshd端口一样,如果用户限制登录系统,sftp怎么可能可以使用。我直接使用客户提供的sftp用户密码,使用ssh命令登录了。

      之后想了下,系统内开启ssh服务和sftp服务都是通过/usr/sbin/sshd这个后台程序监听22端口,而sftp服务作为一个子服务,是通过/etc/ssh/sshd_config配置文件中的Subsystem实现的,如果没有配置Subsystem参数,则系统是不能进行sftp访问的。sftp是ssh的一部分,sftp没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,sftp并不像是一个服务器程序,而更像是一个客户端程序。那么如果使用sftp来模拟ssh,变相的从ssh中分离处理,当然不是真的分离。这样不就实现了ssh和sftp分离了吗?

      简单整理了一下,脚本下载地址,请联系我VX:wangjianxiong000834(一元红包,非诚勿扰,备注下需要的脚本。如有需求亦可开发(shell,python,java))。

    脚本实现

    查看服务端口:

    实现ssh和sftp分离:

    查看脚本帮助文档:

     执行脚本实现ssh和sftp服务分离:

    查看端口:

    默认会创建sftpd服务用户:

    用户名:sftpuser

    密码:sftpuser

    如果你想创建自己的sftpd服务用户,可执行脚本创建。-u 用户名 -p 密码 -d 用户的家目录位置(最好不要写已经存在的目录)。

    测试 

    测试sftpd,使用sftp可以登录:

     测试sshd,使用ssh不能登录:

     查看sshd和sftpd的服务状态:

      

  • 相关阅读:
    记一次VS2010和VS2015自定义颜色的过程
    Git使用笔记
    VS winsock.h和ws2def.h大量重定义报错的问题
    在ASP.NET MVC 3中使用日志记录组件Elmah和NLog
    Entity Framework 6新特性:全局性地自定义Code First约定
    在ASP.NET MVC 3 中自定义AuthorizeAttribute时需要注意的页面缓存问题
    SSH开发记录
    iOS开发知识要点
    (收藏)在 iPhone/iPad 中随意修改数字键盘按钮
    iPhone开发 – 数据持久化
  • 原文地址:https://www.cnblogs.com/daxiong1314/p/13534289.html
Copyright © 2011-2022 走看看