允许用户进行端口转发,但不允许通过 SSH 进行其他操作

允许用户进行端口转发,但不允许通过 SSH 进行其他操作

我创建了一个 linux 用户并将其默认 shell 更改为/bin/true.我想允许该用户通过 SSH 设置端口转发,但不在服务器上执行任何操作。

我怎样才能做到这一点?

答案1

通过将用户的 shell 设置为/bin/true,您已经阻止了用户在服务器上执行任何操作。问题是,如果用户通过“正常”连接到服务器ssh,输入密码后他/她会立即断开连接,因此也无法使用端口转发。

您的用户应该使用-N参数 to ssh,如下所示:

ssh -N -L 8000:localhost:80 youruser@yourserver

这会创建从用户连接的计算机的端口 8000 到服务器上的端口 80 的端口转发。该-N参数指示ssh仅建立连接,但要不是执行用户的默认 shell(/bin/true在您的情况下)。因此,用户保持连接并且连接将“挂起”,直到被 Ctrl-C 中断。在此期间,端口将被转发。

您还可以通过添加beforessh来在“挂起”之前转到后台(因此终端不会被阻止)。在这种情况下,稍后要退出端口转发,就必须在进程列表中找到该进程并将其杀死。-f-Nssh

相关内容