有可能分开SSH和SFTP?
例如,SFTP侦听端口22和端口2222上的SSH?
我将SFTP和SSH用户列表分开,目标是允许SFTP用户在端口22上连接,并使SSH在更高的端口(如2222)上进行监听。
由于两者基本上都是SSH的一部分,我无法find实现这一目标的方法。
提前致谢!
其他的问题是正确的,但是你可以设置openSSH的单一实例来监听两个端口,并且处理SFTP连接和SSH连接。
Port 22 Port 2222 Match LocalPort 22 Subsystem sftp internal-sftp ChrootDirectory /sftp/root/dir AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp
添加第二个运行在单独的端口上的实例肯定是有效的,但是你必须处理告诉用户使用另一个端口 – 他们不会。 您还可以使用match user
和match group
行来强制用户和/或组仅为sftp。
在sshd-config
,你可以做类似的事情
Subsystem sftp internal-sftp ... Match Group sftponly ChrootDirectory /sftp/root/dir AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp
另请参阅Linux shell将sftp用户限制到其主目录?
你可以这样做:
创建第二个/单独的SSH服务(根据您使用的init系统,这将会有所不同);
并将其配置为仅允许SFTP 。 你可能想要chroot SFTP服务,以防止一些可以被用户用来获取shell的技巧。