Có thể kích hoạt SFTP trên toàn cầu và chỉ vô hiệu hóa SFTP cho một số người dùng.
Điều này không hoạt động nếu bạn muốn người dùng của mình nhận được một dấu nhắc shell thông thường. Cũng không có nghĩa gì, vì bạn có thể phá vỡ hầu hết mọi thứ nếu bạn có quyền truy cập shell.
Nó sẽ chỉ hoạt động nếu bạn chỉ muốn cấp quyền truy cập vào một chương trình cụ thể.
Cá nhân tôi cần điều này bởi vì tôi muốn cấp quyền truy cập vào một số kho git qua SSH và tôi muốn vô hiệu hóa các hệ thống không cần thiết. Trong trường hợp đó SFTP là không cần thiết.
Phù hợp
Để khớp với nhóm người dùng, bạn có thể định cấu hình SSH với Matchtừ khóa. Từ sshd_config(5)hướng dẫn:
Match
        ...
        The arguments to Match are one or more criteria-pattern pairs or the
        single token All which matches all criteria.  The available criteria
        are User, Group, Host, LocalAddress, LocalPort, and Address.  The
        match patterns may consist of single entries or comma-separated
        lists and may use the wildcard and negation operators described in
        the PATTERNS section of ssh_config(5).
        ...
Một vài ví dụ:
Match User eva phù hợp với người dùng "eva" 
Match User stephen,maria phù hợp với người dùng "stephen" và "maria" 
Match Group wheel,adams,simpsons phù hợp với các nhóm "bánh xe", "adams", "simpsons" 
Nếu bạn muốn biết thêm thông tin, có tải trong sshd_config(5)hướng dẫn.
Lệnh cưỡng bức
Thông thường, bạn nhận được vỏ đăng nhập của người dùng khi bạn kết nối qua SSH, nhưng SSH có thể được cấu hình để buộc một lệnh nhất định. Lệnh bị buộc đối với mọi kết nối SSH, bao gồm SFTP, và do đó bạn có thể có tùy chọn để buộc lệnh bạn muốn.
Lệnh bắt buộc có thể được cấu hình với ForceCommandtừ khóa. Từ
 sshd_config(5)hướng dẫn:
ForceCommand
        Forces the execution of the command specified by ForceCommand,
        ignoring any command supplied by the client and ~/.ssh/rc if
        present.  The command is invoked by using the user's login shell
        with the -c option.  This applies to shell, command, or subsystem
        execution.  It is most useful inside a Match block.  The command
        originally supplied by the client is available in the
        SSH_ORIGINAL_COMMAND environment variable.  Specifying a command of
        “internal-sftp” will force the use of an in-process sftp server that
        requires no support files when used with ChrootDirectory.  The
        default is “none”.
Vì vậy, bạn có thể buộc lệnh bị ràng buộc mà bạn muốn sử dụng ForceCommand <your command>. Ví dụ:
Match User kim
        ForceCommand echo 'successful login man, congrats'
Thí dụ
Trong trường hợp tôi muốn cấp quyền truy cập git, tôi chỉ cần người dùng có quyền truy cập git-shell. Đây là phần vô hiệu hóa SFTP cho người dùng git của tôi, cùng với một số tùy chọn bảo mật:
Match Group git
        # have to do this instead of setting the login shell to `git-shell`,
        # to disable SFTP
        ForceCommand /usr/bin/git-shell -c "$SSH_ORIGINAL_COMMAND"
        # disable stuff we don't need
        AllowAgentForwarding no
        AllowTcpForwarding no
        AllowStreamLocalForwarding no
        PermitOpen none
        PermitTunnel no
        PermitTTY no
        X11Forwarding no
               
              
ownerđể truy cập ra ngoài. Điều này giả định rằng bạn sẽ được thử nghiệm bởi một đội đỏ. Nếu tất cả mọi người truy cập vào hệ thống của bạn luôn tuân thủ các quy tắc và không bao giờ có ý định xấu, thì cách tiếp cận của tôi sẽ rất nặng nề và quá phức tạp.