所以我一直在研究这个问题。想知道是否有更好的方法,或者我是否走在正确的轨道上。
我基本上想让一些用户通过SSH登录我的服务器,然后通过SSH连接建立一个squid隧道。
然而,棘手的部分是我不希望这些用户能够执行任何命令。我的意思是什么都没有。所以在这个阶段我设置了一个jail via - jailkit。然后将特定用户放在jail中,并将bash shell作为shell。
下一步是删除/ jail / bin /目录等中的所有命令,以便它们无法执行任何命令。
我在正确的道路上吗?你会建议什么?
另外......我发现它会给他们许多命令找不到错误......我该如何删除它们。
有没有其他的外壳可以让他们不让他们做任何事情?
答案 0 :(得分:2)
您可以将它们的shell设置为/ bin / true,或者可以是一个简单的脚本,它将输出一条信息性消息,然后让它们使用ssh -N登录(请参阅ssh手册页)。我相信它允许他们使用portforwarding而不需要在系统上安装一个独立的shell。
编辑:
PuTTY中ssh -N的等效项是检查其SSH配置选项卡(Connection-> SSH)中的“不要启动shell或命令”复选框。
EDIT2:
作为替代方案,您可以使用进入无限睡眠循环的脚本。在使用Ctrl-C中断之前,连接将保持活动状态。我刚试过这个:
#!/bin/sh
echo "DNSH: Do-Nothing Shell"
while sleep 3600; do :; done
如果你将它用作shell(最好使用更有用的消息),你的用户将能够在没有实际shell的情况下使用端口转发,而无需了解ssh -N和朋友。