我想在我的本地机器上使用 SSH 隧道来绕过政府限制。我说的是使用 ssh 连接创建一个 socks 代理服务器。
ssh -f -N -D 1080 [email protected]
这现在完美无缺。但我想将此传递给其他少数人(朋友和家人)。事情是现在我正在使用管理员用户来执行此操作。我想我可能应该为每个人创建一个非管理员/访客用户。
如果他们决定正常 ssh 并弄乱服务器,或者如果他们丢失了登录凭据或者它落入了黑客的手中,我有点担心。
那就是我想更进一步,将它们限制在它们实际上无法做任何事情或有害的程度,但具有足够的功能来运行 ssh 隧道。
那我之后该怎么办adduser <username>
?
经过一番挖掘和亚历克斯的伟大暗示后,我找到了一个可行的解决方案。
创建新用户时只需添加 2 个参数。
--no-create-home
将跳过为用户创建主目录,并--shell=/bin/false
确保用户永远不会获得 shell 访问权限,无论他们是尝试本地登录还是使用 ssh 远程连接。如果你像我一样偏执,你也可以
/etc/ssh/sshd_config
像这样限制它们:注意:不要尝试
chroot
他们,它不起作用。至少对我来说不是。当我尝试 chroot 他们时,我得到了这个错误:channel 2: open failed: connect failed: Device or resource busy
。也许我没有正确设置我的 chroot 环境,但我认为 chroot 太孤立了,隧道无法工作。无论如何,最重要的部分是使用上述方法可以正常工作的 ssh 隧道。
这会成功连接并在您和您的服务器之间建立一条隧道,您可以使用该隧道在端口 1080 上路由您的流量。它甚至不需要 shell 访问。如果受限用户决定正常使用 ssh,他们会收到错误,并且 ssh 连接会立即关闭。