如何设置没有终端但端口转发的ssh帐户?

adm*_*edd 5 linux ssh port-forwarding putty

我正在尝试设置一个可以提供给朋友的新用户帐户,以便他们可以通过 SSH 连接到我的转发计算机,并且只允许转发某些端口。

我不希望我的朋友有一个外壳,或者能够将哪些端口更改为允许他们转发的位置。

示例会话:joe(friend) 使用 PuTTY(我已经预先设置,他不擅长计算机)连接到 example.com(我面向 Internet 的计算机)将端口 8080,1990,25565 转发给他(无论何时结束)他想要的端口,最好保持相同的数字)示例 ssh 命令执行类似操作(但他仍然可以更改我计算机上的端口!)

ssh -N restricteduser@example.com -p443 -L8080:192.168.1.2:8080 -L1990:127.0.0.1:1990 -L25565:127.0.0.1:25565
Run Code Online (Sandbox Code Playgroud)

然后,与其他朋友史密斯(相同的端口,甚至相同的用户)的相同故事,除了他使用的是 linux,所以不能使用腻子。

除了这个用户之外,是否也可以为所有其他用户保留默认的 SSH 功能?

我在搜索谷歌时发现了这一点,但唉,我不太明白所建议的内容,而且我认为它们没有涵盖限制端口转发

Jer*_*ant 5

我想到的最简单的方法是禁用 SFTP,并将 shell 更改为 /usr/sbin/nologin 等(一个简单地打印“此帐户当前不可用。”并退出的程序)

如果您不担心他们在您的机器上以他们的用户名存储文件,那么您是 /etc/passwd 远离解决方案。如果你担心他们用垃圾填满你的硬盘,我可以建议设置配额吗?;)

至于限制可用的端口,sshd_config 中的“permitopen”应该很好地服务于这个目的。它不会完全按照您的意愿行事,因为它只能禁止除 -L 转发的一组给定主机目标之外的所有目标,但如果您有这样的特定需求,则专门为这些用户运行单独的 sshd 可能是可行的他们的限制。