我想将 SCP 分离到与常规端口 22 不同的 TCP 端口上。
使用此端口,用户只能运行 SCP 命令,而不能进行常规 SSH 登录。该用户将无法在端口 22 上进行常规 SSH 登录,反之亦然。
那可能吗?
答案1
只需启动第二个 ssh 守护进程,并使用单独的sshd_配置配置文件,您可以运行两个 sshd 实例,每个实例的配置都不同。
例如,在一个 sshd_config 中使用Port customport
和AllowUsers username1
关键字,并且仅允许用户登录自定义端口username1
。
在其他 sshd_config 中,例如使用Port 22
和DenyUsers username1
关键字,并且禁止用户在默认 sshd 端口 22 上登录username1
。
据我所知,scp 长期受到安全问题的困扰,并且限制用户scp
仅访问似乎总是不简单的并且需要相当多的解决方法。
因此,Red Hat 完全放弃对 SCP 的支持,如下所述:https://www.redhat.com/en/blog/openssh-scp-deprecation-rhel-9-what-you-need-know 现在提供了一个scp
在底层使用 SFTP 协议的版本。
使用关键字将用户限制为仅限 SFTP 在 OpenSSHd 中是本机支持的:
ForceCommand internal-sftp
所以这也可能是你最好的选择。