![限制 SSH shell 访问 Debian 服务器](https://linux22.com/image/498981/%E9%99%90%E5%88%B6%20SSH%20shell%20%E8%AE%BF%E9%97%AE%20Debian%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我对 Debian 还不熟悉,所以请耐心等待。
我唯一想要的是用户通过 SSH 登录。此时不应显示任何文件或目录(如 /etc、/var)。
用户唯一能做的就是“su”登录到 root 权限然后管理系统。
这样做是为了提高安全性。一点一滴都有帮助,对吧?
显然 chroot 不是那么安全(看到这里的答案这么说。但似乎找不到链接)。
答案1
您可以使用它ForceCommand
来避免向用户提供任何 shell 访问权限。
ForceCommand
Forces the execution of the command specified by ForceCommand,
ignoring any command supplied by the client and ~/.ssh/rc if pre-
sent. The command is invoked by using the user's login shell
with the -c option. This applies to shell, command, or subsystem
execution. It is most useful inside a Match block. The command
originally supplied by the client is available in the
SSH_ORIGINAL_COMMAND environment variable. Specifying a command
of ``internal-sftp'' will force the use of an in-process sftp
server that requires no support files when used with
ChrootDirectory.
答案2
如果您确实希望限制访问,那么我建议使用 sudo 并仅启用此用户管理您选择的应用程序所需的命令。
答案3
用户唯一能做的就是“su”登录到 root 权限然后管理系统。
这样做是为了提高安全性。一点一滴都有帮助,对吧?
错误的。
如果您希望 root 能够登录,您应该允许 root 能够登录。
以用户身份登录,然后执行 su 成为 root 是一种非常复杂且不太安全的方法:
- 一般来说任何事情都可能失败,因此,您要求用户执行的步骤越多,出错的可能性就越大(“错误”的意思是,您没有做对某件事,并且有人入侵了您的服务器)
- 您将被强制输入 root 密码,而使用 ssh 密钥登录而无需输入任何密码可能会被认为更安全。或者使用 ssh 密钥并输入密码短语,以增加安全性
如果你真的不知道自己想要什么,那么最好保持简单,使用那些知道自己在做什么的人编写的标准程序。很明显你不是安全专家,因此请考虑一下,你可能想到的任何东西都已经被某个专家做过了,或者被当作毫无价值的东西丢弃了,或者他们从来没有想到过,因为它根本就没有意义。
您可能想知道如何使用 ssh-keygen 以及如何配置 sshd_config。