如何让 CentOS 7 接受 SSH 同时拒绝 SCP?

Oli*_*hen 1 ssh scp sftp

CentOS 7 服务器上,我想将其配置为:

  1. 接受SSH 连接,如PuTTY
  2. 拒绝SCP/SFTP 连接,例如SCPWinSCPFileZilla

这样的配置可以吗?

Gor*_*bić 35

它不会帮助你,因为用户可以简单地做:

ssh user@host "cat /path/to/file" > /local/path/to/file
cat /local/path/to/file | ssh user@host "cat - > /path/to/file"
Run Code Online (Sandbox Code Playgroud)

分别向下和向上复制文件。

  • 我的意思是,甚至有[一个现成的协议](https://en.wikipedia.org/wiki/Files_transferred_over_shell_protocol)。 (8认同)

Hid*_*eld 5

是的你可以。

Subsystem sftp要禁用 sftp,请找到文件中以 开头的行/etc/ssh/sshd_config(默认情况下,它位于文件的最末尾附近)。将其注释掉(#在行首放置 a)并重新启动 sshd。

SCP 没有这样的配置,客户端scp程序只是期望远程scp可执行文件位于用户的路径中。因此,只需删除scp二进制文件即可禁用它。(然后你必须记住每次更新 SSH 包时再次删除它。)

但是,正如其他人所说,这不会阻止用户上传和下载文件。它只会让事情变得更加困难。因此,如果您出于安全原因这样做,那么您确实需要重新考虑。

  • 另请注意,从 OpenSSH 8.7 开始,“scp”程序实际上可以在内部使用 SFTP 协议(​​稍后它将成为默认操作模式)。因此,您必须禁用这两个协议才能真正阻止人们使用“scp”。(当 shell 访问可用时,这仍然毫无意义。) (3认同)
  • @OliverChen:我曾经使用 uuencode 和复制/粘贴来传输文件输入/输出,因为它比我当时使用的糟糕的 FTP 客户端更方便。你赢不了。 (3认同)