我想建立 SSH 隧道,但我在共享系统上。我不想与其他用户共享隧道访问权限。有没有办法将本地端口限制为仅供我(作为标准用户)使用?
答案1
不,您不能像那样限制用户的 TCP/UDP 套接字访问;您需要为此使用 unix 套接字,因为它们在文件系统中显示为文件并且可以应用权限。这里的问题是,我认为没有任何 SSH 客户端支持创建 unix 套接字隧道(OpenSSHd 服务器也不支持,因此您需要在共享系统上运行自定义 SSH 客户端,然后通过 SSH 返回到您希望另一个 SSH 隧道端点所在的位置)。此外,您必须确保要建立隧道的应用程序支持 unix 套接字,但可能不支持。
如果您想要隧道传输的应用程序确实支持文件系统管道或 unix 套接字,那么您可能很幸运,但仍然需要做大量工作。您可以尝试创建一个打开 unix 套接字并将其连接到 STDIN/STDOUT 的程序,然后在非交互模式下使用 SSH 通过默认 PTY 通道(而不是套接字隧道)隧道传输该数据。在 SSH 连接的另一端使用相同的程序将其连接到本地 unix 套接字。
瞧!一个通过 SSH 保护的套接字隧道,两端都有附加权限和 ACL。创建程序(也就是最难的部分)留给读者练习。