我正在尝试设置一个系统,该系统会在 ssh 登录时自动创建一个新的沙箱,以用作进入我的服务器的临时跳箱。因此,为了做到这一点,我想知道如何设置 lxc 在存在 ssh 连接后在容器中启动一个新的 shell,然后在会话关闭后销毁该容器。
解决这个问题的最佳方法是什么?
编辑:
感谢所有提出意见的人。我已经能够设计出执行相同设置的方法,如下所示:
/etc/ssh/sshd_config:
match group ssh forceCommand sudo docker run --rm -t -i busybox /bin/sh
其作用是强制用户会话立即进入 busybox 容器,然后在退出时删除更改。人们可以更改或创建自己的图像并指定它来代替 busybox。尽管这里包含此内容,因为默认的 busybox 容器提供的唯一功能是 wget 和 telnet,这对于大多数 OOB 测试/跳转盒来说已经足够好了,并且这是此设计的用例目标。
答案1
好吧,你的主要问题似乎不是你执行此操作的方式。在ForceCommand
一个Match
块内这相对容易sshd_config
。
为了实现您想要实现的目标,即使用后“自毁”的一次性容器,您可以使用lxc-start-ephemeral
。也就是说,您的用例已在 LXC 用户空间工具集中考虑。唯一需要注意的是:您的 LXC 版本需要足够新。
还有一件事。您需要一个容器lxc-start-ephemeral
作为临时克隆启动的基础。更多详细信息可以在 的手册页中找到lxc-start-ephemeral
。