咕噜咕噜502 2024-05-07 20:45 采纳率: 56.6%
浏览 18
已结题

怎么禁止ssh使用sftp的端口进行连接登录? 已解决

在centos 7中

img

ssh版本为

img


在此些版本基础上,我配置sftp,因为sftp是ssh下的一个子服务,sftp使用的是ssh的端口,所以我进行了配置、端口分离,依照以下文章链接
https://blog.csdn.net/hahawangzi520/article/details/128204467?app_version=6.3.4&code=app_1562916241&csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128204467%22%2C%22source%22%3A%22Feeling2037%22%7D&uLinkId=usr1mkqgl919blen&utm_source=app

服务成功分离了,端口ssh为22,sftp为53521,sftp也可以正常连接,但是ssh竟然可以使用sftp的端口53521的端口去进行ssh的连接登录,这就违背了我端口分离的初衷,那怎么禁止ssh可以使用sftp的端口进行连接登录呢?

解决方法:
通过查询资料,配置分离后,在分离出的/etc/ssh/sftpd_config下,也就是sftp端口的配置文件中添加 ForceCommand internal-sftp,注意这个配置不是添加在Match下,而是和Subsystem sftp internal-sftp平级。

img

这个配置的作用是:指令将限制通过此端口的所有连接只能使用 SFTP,而不能执行 SSH 命令。
请注意,ForceCommand 指令在较新的 OpenSSH 版本中用于限制命令,但是在较旧的版本中可能不支持或行为不同。如果 ForceCommand 不起作用,您可能需要升级到较新的 OpenSSH 版本,或者使用其他方法来限制 SSH 连接。

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-07 20:46
    关注

    引自免费微信小程序:皆我百晓生

    要禁止SSH通过SFTP的端口(例如53521)进行连接,你需要修改SSH服务器的配置文件sshd_config。请按照以下步骤操作:

    1. 打开SSH配置文件:

      sudo nano /etc/ssh/sshd_config
      
    2. 查找或添加以下两行,确保它们分别处于独立的行上:

      Subsystem sftp internal-sftp
      Match Address 0.0.0.0/0
      

      如果Subsystem sftp internal-sftp这一行已经存在,无需再次添加。

    3. 添加一个新的Match块,将SFTP绑定到特定端口,并阻止从其他地址访问SSH(除了localhost):

      Match Address 0.0.0.0/0
        ChrootDirectory %h
        ForceCommand internal-sftp
        Port 53521
        AllowUsers your_username
      

      your_username替换为你允许使用SFTP的用户名。

    4. 禁止SSH通过非标准端口(这里是53521)连接:

      在同一Match块内添加以下行:

      PermitRootLogin no
      PasswordAuthentication no
      PubkeyAuthentication yes
      ChallengeResponseAuthentication no
      KbdInteractiveAuthentication no
      X11Forwarding no
      AllowTcpForwarding no
      
    5. 保存并关闭配置文件。

    6. 重启SSH服务使更改生效:

      sudo systemctl restart sshd
      

    这样配置后,SFTP应该只允许通过指定的端口(53521)连接,并且只有被授权的用户(在这里是your_username)可以通过这个端口使用SFTP。同时,SSH服务将不允许通过这个端口进行常规的SSH连接,因为它启用了更严格的认证设置。

    如果你想要允许其他用户通过SFTP端口进行连接,只需在AllowUsers行后添加他们的用户名,每个用户名之间用空格分隔即可。例如:

    AllowUsers user1 user2
    

    这样,用户1和用户2都可以通过53521端口使用SFTP。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月8日
  • 修改了问题 5月8日
  • 修改了问题 5月7日
  • 创建了问题 5月7日

悬赏问题

  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22
  • ¥15 R语言中lasso回归报错