场景:同一个用户可以从两个不同的网段连接到一个 ssh 主机。但是当从一个网段连接时,他们不应该能够使用交互式 ssh 会话(这实际上是长距离隧道),只应允许使用 chrooted sftp。
如何实现?可以通过 sshd 的设置来实现吗?或者通过 tcp 包装器 (libwrap) + sshd 来实现?
答案1
您可以使用Match
配置文件底部的指令sshd_config
可以覆盖全局设置,其中包括Address
用户连接自。
这使您可以为特定用户/组/客户设置大量不同的特定设置。
# /etc/ssh/sshd_config
# ...
# your current global config
#
# Enable the internal sftp server
Subsystem sftp internal-sftp
# ...
# Override for users connecting from the 192.0.2.0/24 subnet
# They're only allowed to use sftp to their %h home directory
Match Address 192.0.2.0/24
ForceCommand internal-sftp
ChrootDirectory %h
看此问答了解内部 sftp 服务器的背景。