2010-11-25 162 views
3

所以我一直在研究这一段时间。想知道是否有更好的方法,或者如果我在正确的轨道上。限制SSH - 没有命令的bash

我基本上想允许一些用户通过SSH登录到我的服务器,然后通过SSH连接有一个鱿鱼隧道。

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

所以在这个阶段我已经建立了Jail via jailkit。然后将特定用户放入监狱并将bash外壳作为外壳。

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

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

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

有没有其他的shell我可以看看给他们,不让他们做任何事情?

回答

2

您可以将其shell设置为/ bin/true或可能是一个简单的脚本,它将输出一条信息性消息,然后让它们使用ssh -N登录(请参阅ssh手册页)。我相信,允许他们使用portforwarding,而不必在系统上安装真正的shell。

编辑:

SSH -N的腻子等效正在检查在其SSH配置标签(连接 - > SSH)“不启动一个外壳或命令在所有”复选框。

EDIT2:

作为一种替代这一点,你可以用它进入无限循环睡眠的脚本。在使用Ctrl-C中断之前,连接将保持活动状态。我只是尝试这样做:

#!/bin/sh 

echo "DNSH: Do-Nothing Shell" 

while sleep 3600; do :; done 

如果你使用这个作为一个壳(最好有更多的帮助信息),用户将能够使用端口转发,而不实际的外壳,也无需知道SSH -N和朋友。

+0

无论如何,他们仍然可以使用`ssh -t $ host/bin/sh`来获取shell。 – ephemient 2010-11-25 08:36:09