这是一个安全的想法。我们的员工可以访问 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/