3

所以我已经为此工作了一段时间。想知道是否有更好的方法或者我是否在正确的轨道上。

我基本上希望允许一些用户通过 SSH 登录到我的服务器,然后通过该 SSH 连接拥有一个 squid 隧道。

然而,棘手的部分是我不希望这些用户能够执行任何命令。我的意思是什么都没有。

所以在这个阶段,我通过 - jailkit 设置了一个监狱。然后将特定用户置于监狱中,并将 bash shell 作为 shell。

下一步是删除 /jail/bin/ 目录等中的所有命令,以便它们无法执行任何命令。

我在正确的道路上吗?你有什么建议?

另外......我看到它会给他们很多命令未找到的错误......我该如何删除这些。

有没有其他我可以考虑给他们的不让他们做任何事情的外壳?

4

1 回答 1

2

您可以将他们的 shell 设置为 /bin/true 之类的东西,或者可能是一个简单的脚本,它会输出一条信息性消息,然后让他们使用 ssh -N 登录(请参阅 ssh 手册页)。我相信这允许他们在系统上没有实际外壳的情况下使用端口转发。

编辑:

PuTTY 中的 ssh -N 等效项是在其 SSH 配置选项卡(连接->SSH)中选中“根本不启动 shell 或命令”复选框。

编辑2:

作为替代方案,您可以使用进入无限睡眠循环的脚本。在使用 Ctrl-C 中断之前,连接将保持活动状态。我刚试过这个:

#!/bin/sh

echo "DNSH: Do-Nothing Shell"

while sleep 3600; do :; done

如果您将其用作外壳(最好带有更有用的消息),您的用户将能够在没有实际外壳的情况下使用端口转发,而无需了解 ssh -N 和朋友。

于 2010-11-25T08:34:42.527 回答