ssh 设置 `permitopen="localhost:4000"` 不限制远程端口转发

ssh 设置 `permitopen="localhost:4000"` 不限制远程端口转发

我的服务器上有一个特殊用户,我们称之为foo。我仅将其用于端口转发。

用户.ssh/authorized_keys2设置为阻止登录并仅打开特定端口:

no-pty,no-X11-forwarding,permitopen="localhost:4000",\
command="/bin/echo do-not-send-commands" ssh-rsa <long public key> bar@foobar

此外,它foo的 shell 设置为/bin/falsein /etc/passwd

我无法登录机器(这就是我想要的):

$ ssh foo@remote
PTY allocation request failed on channel 0
Connection to remote closed.

但我可以打开端口。有趣的是,我可以打开端口 4000,但也可以打开其他非特权端口:

$ ssh -N -R 4001:localhost:22 foo@remote
> # connection established

remoteuser 上bar,我可以连接:

$ ssh -p4001 bar@localhost
bar@localhost's password:
Last login: Fri Sep 26 09:23:45 2014 from localhost.localdomain
...

为什么用户可以foo打开端口 4001,而我将其限制为permitopen="localhost:4000"

答案1

啊,重读一下手册就知道原因了:

permitopen="host:port"
    Limit local ``ssh -L'' port forwarding....

在 U&L 问答中还提到了以下标题:如何限制ssh偏僻的转发端口?

相关内容