在没有命令的情况下限制SSH-bash
所以我已经为此工作了一段时间。我想知道是否有更好的方法,或者我是否在正确的轨道上 我基本上希望允许一些用户通过SSH登录到我的服务器,然后通过SSH连接使用squid隧道 然而,棘手的是,我不希望这些用户能够执行任何命令。我什么都不是 因此,在这个阶段,我通过-jailkit建立了一个监狱。然后将特定用户放入监狱,并将bash shell作为shell提供 下一步是删除/jail/bin/目录等中的所有命令,使它们无法执行任何命令 我走的路对吗?你有什么建议 另外…我看到它会给他们很多命令未找到的错误…我如何删除这些在没有命令的情况下限制SSH-bash,ssh,jail,Ssh,Jail,所以我已经为此工作了一段时间。我想知道是否有更好的方法,或者我是否在正确的轨道上 我基本上希望允许一些用户通过SSH登录到我的服务器,然后通过SSH连接使用squid隧道 然而,棘手的是,我不希望这些用户能够执行任何命令。我什么都不是 因此,在这个阶段,我通过-jailkit建立了一个监狱。然后将特定用户放入监狱,并将bash shell作为shell提供 下一步是删除/jail/bin/目录等中的所有命令,使它们无法执行任何命令 我走的路对吗?你有什么建议 另外…我看到它会给他们很多命令未找到
有没有其他shell可以让他们不做任何事情?您可以将他们的shell设置为类似/bin/true的值,或者设置一个简单的脚本来输出信息性消息,然后让他们使用ssh-N登录(请参阅ssh手册页面)。我相信这允许他们使用portforwarding,而不必在系统上安装实际的shell 编辑: PuTTY中ssh-N的等价物是在其ssh配置选项卡(Connection->ssh)中选中“根本不启动shell或命令”复选框 编辑2: 作为替代方案,您可以使用进入无限睡眠循环的脚本。在使用Ctrl-C中断之前,连接将保持活动状态。我刚试过这个:
#!/bin/sh
echo "DNSH: Do-Nothing Shell"
while sleep 3600; do :; done
如果您将其用作shell(最好带有更有用的消息)您的用户将能够使用端口转发,而不需要实际的shell,也不需要了解ssh-N和朋友。他们仍然可以使用
ssh-t$host/bin/sh
来获取shell。我将如何使用进入无限睡眠循环的脚本???@ephemient:ssh-t在我的应用程序中似乎不是这样工作的system.@ephemient:我提供给ssh的任何命令似乎都通过使用-c shell选项定义的shell。无限循环脚本似乎就是我要找的东西……所以只需创建一个新的自定义shell??