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

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

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

我不希望我的朋友拥有 shell,或者能够将他们允许转发的端口更改为哪里。

示例会话:joe(朋友)使用 PuTTY(我已预设,他不擅长使用电脑)连接到 example.com(我的面向 Internet 的电脑),将端口 8080、1990、25565 转发给他(使用他想要的任何端端口,最好保持相同的数字)示例 ssh 命令执行类似操作(但他仍然可以更改我电脑上的端口!)

ssh -N [email protected] -p443 -L8080:192.168.1.2:8080 -L1990:127.0.0.1:1990 -L25565:127.0.0.1:25565

然后,另一个朋友史密斯也有同样的故事(相同的端口,甚至相同的用户),只是他使用的是 Linux,所以不能使用 Putty。

是否可以为除此用户之外的所有其他用户保留默认 SSH 功能?

我发现当我在谷歌上搜索时,但遗憾的是,我不太明白所建议的内容,而且我认为他们没有涵盖限制端口转发

答案1

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

如果您不担心他们会在您的机器上以他们的用户身份存储文件,那么您只需要一个 /etc/passwd 即可找到解决方案。如果您担心他们会用垃圾填满您的硬盘,我是否可以建议设置配额?;)

至于限制可用端口,sshd_config 中的“permitopen”应该可以很好地实现这一目的。它不能完全满足您的要求,因为它只能禁止除 -L 转发的一组给定主机目标之外的所有目标,但考虑到您对这些用户的限制有特定需求,专门为这些用户运行单独的 sshd 可能是可行的。

相关内容