独立的SSH和SFTP

有可能分开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 usermatch 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用户限制到其主目录?

你可以这样做:

  1. 创建第二个/单独的SSH服务(根据您使用的init系统,这将会有所不同);

  2. 并将其配置为仅允许SFTP 。 你可能想要chroot SFTP服务,以防止一些可以被用户用来获取shell的技巧。