Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在没有命令的情况下限制SSH-bash_Ssh_Jail - Fatal编程技术网

在没有命令的情况下限制SSH-bash

在没有命令的情况下限制SSH-bash,ssh,jail,Ssh,Jail,所以我已经为此工作了一段时间。我想知道是否有更好的方法,或者我是否在正确的轨道上 我基本上希望允许一些用户通过SSH登录到我的服务器,然后通过SSH连接使用squid隧道 然而,棘手的是,我不希望这些用户能够执行任何命令。我什么都不是 因此,在这个阶段,我通过-jailkit建立了一个监狱。然后将特定用户放入监狱,并将bash shell作为shell提供 下一步是删除/jail/bin/目录等中的所有命令,使它们无法执行任何命令 我走的路对吗?你有什么建议 另外…我看到它会给他们很多命令未找到

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

我基本上希望允许一些用户通过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??