Ssh

僅將 SFTP 使用者(基於 OpenSSH)限制為自定義埠

  • December 9, 2019

據我了解,網際網路上有大量其他執行緒允許在自定義埠上進行 OpenSSH SFTP 連接。我打過他們,不是全部,而是很多。並且無法使其在我的特定情況下工作:)

以下是我一直在努力解決的問題:

  • CentOS Linux 版本 7.6.1810 (Core),在 AWS

  • OpenSSH_7.4p1,OpenSSL 1.0.2k-fips 2017 年 1 月 26 日

  • 要求:

    • sshd允許 1 個實例
    • 埠 22:SSH
    • 埠 2222:SFTP
    • Chrooted SFTP 使用者
  • /etc/ssh/sshd_config我的頂部:

Port 22
Port 2222
  • johanmeiring使用Ansible 角色 ansible -sftp配置的 SFTP 伺服器

    • 然後我修改/etc/ssh/sshd_config以更改此Match行:
    Match Group sftpusers
    

    到:

    Match Group sftpusers LocalPort 2222
    

    希望該組的使用者sftpusers能夠通過埠 2222 進行 SFTP 連接

    • 這更多/etc/ssh/sshd_config是我認為相關的:
    Port 22
    Port 2222
    ...
    Subsystem sftp internal-sftp -f AUTH -l VERBOSE
    ...
    Match Group sftpusers LocalPort 2222
        ChrootDirectory %h
        AllowTCPForwarding no
        X11Forwarding no
        ForceCommand internal-sftp
        PasswordAuthentication no
    

真正發生的是 SFTP 使用者能夠通過埠 22 和 2222 進行連接。更糟糕的是,當通過埠 22 連接時,SFTP 使用者根本沒有 chroot(他們可以cd自由)。這一切都不是預期的。

如何在OpenSSH的基礎上實現chrooted SFTP使用者,限制在2222埠,同時讓SSH正常執行?

謝謝你。

嘗試添加另一個匹配組並拒絕對該組的訪問。

Match Group sftpusers LocalPort 22
   DenyGroups sftpusers

會工作。

引用自:https://serverfault.com/questions/994864