首先确保sshd服务支持/etc/ssh/sshd_config.d/目录。检查方法,打如下命令:
cat /etc/ssh/sshd_config|grep sshd_config.d
如果输出如下内容,表示支持使用子配置文件方式:
Include /etc/ssh/sshd_config.d/*.conf
此时可建立文件/etc/ssh/sshd_config.d/1-allow-port-forward-user.conf,然后输入限制配置;如果不支持,则直接修改/etc/ssh/sshd_config文件,增添限制配置内容。
限制配置内容如下:
Match User <替换成你的用户名>
PermitOpen <替换成你要限制转发的IP和端口>
X11Forwarding no
AllowAgentForwarding no
ForceCommand /sbin/nologin
以下例子表示限制用户abc只允许转发127.0.0.1的3306端口
Match User abc
PermitOpen 127.0.0.1:3306
X11Forwarding no
AllowAgentForwarding no
ForceCommand /sbin/nologin
最后重启sshd服务
systemctl restart sshd
客户端测试转发:
ssh -L <ssh客户端机器端口>:<服务器要转发访问的ip>:<服务器要转发访问的端口> <用户名>@<服务器ip> -p <服务器ssh端口> -N
例子:
ssh -L 13306:127.0.0.1:3306 abc@192.168.1.100 -p 22 -N
输入密码成功后可在本机使用13306端口,让远程服务器访问到远程服务器所在的127.0.0.1的3306端口。
如果服务器开启了两部验证2FA,有可能部分程序因为不支持2FA验证码输入而失效。此时需要对限制用户解除2FA验证。具体方法见:如何禁止某些用户ssh登录时候使用双因素验证 – Orz小窍门 (orztip.com)
本页永久链接:https://www.orztip.com/?p=818&article_title=restrict-ssh-port-forward-by-user