如何创建具有最少特权/权限但足以进行 ssh 隧道的用户?

如何创建具有最少特权/权限但足以进行 ssh 隧道的用户?

我想在本地机器上使用 SSH 隧道来绕过政府限制。我说的是使用 ssh 连接创建 socks 代理服务器。

ssh -f -N -D 1080 [email protected]

现在这个功能运行得很好。但我想把它传递给其他几个人(朋友和家人)。问题是现在我正在使用管理员用户来执行此操作。我想我应该为每个人创建一个非管理员/访客用户。

我有点担心他们是否会决定正常使用 ssh 并搞乱服务器,或者他们是否丢失了登录凭据或落入黑客手中。

我想更进一步,将它们限制到实际上无法做任何事情或造成危害的程度,但仅具有足够的功能来运行 ssh 隧道。

那么我之后该做什么adduser <username>

答案1

经过一番挖掘和来自亚历克斯我找到了一个可行的解决方案。

创建新用户时只需添加 2 个参数。

sudo adduser limiteduser --shell=/bin/false --no-create-home

--no-create-home将跳过为用户创建主目录,并--shell=/bin/false确保用户永远不会获得 shell 访问权限,无论他们尝试本地登录还是使用 ssh 进行远程连接。

/etc/ssh/sshd_config如果你像我一样偏执,你也可以像这样限制它们:

Match user limiteduser
   ForceCommand /bin/false

注意:不要尝试chroot,它不起作用。至少对我来说不行。当我尝试 chroot 它们时,我收到此错误:channel 2: open failed: connect failed: Device or resource busy。也许我没有正确设置我的 chroot 环境,但我认为 chroot 太孤立了,隧道无法工作。

无论如何,最重要的部分是 ssh 隧道,它使用上述方法可以正常工作。

ssh -N -D 1080 [email protected]

这样就成功连接了,并在你和你的服务器之间建立了一个隧道,你可以用它在端口 1080 上路由你的流量。它甚至不需要 shell 访问。如果受限用户决定正常使用 ssh,他们会收到一个错误,并且 ssh 连接会立即关闭。

相关内容