linux - 如何在登录后将 SSH 用户限制为一组预定义的命令?

这是一个安全的想法。我们的员工可以访问 linux 服务器上的一些命令,但不是全部。他们应该例如可以访问日志文件 (less logfile) 或启动不同的命令 (shutdown.sh/run.sh)。

背景资料:

所有员工使用相同的用户名访问服务器:我们的产品以“普通”用户权限运行,无需“安装”。只需在您的用户目录中解压缩并运行它。我们管理“安装”我们的应用程序的几台服务器。在每台机器上都有一个用户 johndoe。我们的员工有时需要通过命令行访问应用程序以访问和检查日志文件或手动重新启动应用程序。只有部分人拥有完整的命令行访问权限。

我们正在服务器上使用 ppk 身份验证。

如果employee1 只能访问logfile 而employee2 也可以做X 等等就好了...

解决方案: 作为解决方案,我将使用 accepted 答案中所述的 command 选项。我将制作我自己的小 shell 脚本,它是唯一可以为 一些 员工执行的文件。该脚本将提供几个可以执行的命令,但没有其他命令。我将在 authorized_keys 中使用以下参数,如 here 所述:

command="/bin/myscript.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw= user@host

这对我们来说已经足够安全了。谢谢,社区!

最佳答案

您还可以将 key 限制为允许的命令(在 authorized_keys 文件中)。

即用户不会通过 ssh 登录,然后有一组受限制的命令,而是只允许通过 ssh 执行这些命令(例如“ssh somehost bin/showlogfile”)

https://stackoverflow.com/questions/402615/

相关文章:

python - 为什么两个相同的列表有不同的内存占用?

python - 资源,客户端和 session 之间的boto3差异?

python - 什么时候应该使用 Flask.g?

python - UnicodeEncodeError : 'charmap' codec can'

python - 在 Linux 上通过 Python 脚本截取屏幕截图

linux - 提取并删除目录中的所有.gz - Linux

linux - 使用 Bash 按列拆分命令输出?

.net - Raspberry Pi 上的单声道

linux - 我应该使用 libc++ 还是 libstdc++?

linux - 如何在不保留目录结构的情况下 tar 目录?