是否可以将SSH和SFTP分开?
例如,让SFTP在端口22上侦听,在端口2222上侦听SSH吗?
我已经分离了SFTP和SSH用户列表,目的是允许SFTP用户在端口22上连接,并在更高端口(如2222)上进行SSH侦听。
由于两者基本上都是SSH的一部分,我无法找到实现这一目标的方法。
提前致谢!
答案 0 :(得分:9)
其他问题是正确的,但您可以设置openSSH的单个实例来侦听两个端口并在一个端口上处理SFTP连接,在另一个端口上处理SSH连接:
Port 22
Port 2222
Subsystem sftp internal-sftp
Match LocalPort 22
ChrootDirectory /sftp/root/dir
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
答案 1 :(得分:4)
添加在单独端口上运行的第二个实例肯定有效,但是你必须处理告诉用户使用另一个端口 - 他们不会。您还可以使用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 to restrict sftp users to their home directories?
答案 2 :(得分:0)
您可以通过以下方式执行此操作:
创建第二个/单独的SSH服务(这将根据您使用的init系统以不同方式完成);
并将其配置为only allow SFTP。您可能希望chroot SFTP服务,以防止用户可以使用某些技巧来获取shell。