我有一个在 tomcat8 上运行的 Java 应用程序。此应用程序有一种方法,供用户上传公共 ssh 密钥,然后将其添加到本地用户 authorized_keys(仅限于单个文件夹上的 scp),以便他们可以使用这个远程用户名通过 scp 连接到服务器。
这里的问题是 tomact 需要对 authorized_keys 文件的写访问权限。但是 sshd 需要权限为 chmod 600。
如何才能使 tomcat 能够写入 authorized_keys 文件,同时又具有运行 sshd 的正确权限。或者,我曾想过简单地使用 tomcat 用户作为 scp 用户。然而,这感觉不是一个好主意。
感谢 Benedict 的帮助
--- 编辑 --- 我发现可以通过停用 sshd 中的 StrictMode 来授予 tomcat 写入权限。我不确定这是不是个好主意?
答案1
您可以让 tomcat 写入适合 tomcat 的某个地方,并让单独的根进程监视该位置,执行任何可以执行的验证,然后将其合并到本地授权密钥文件中。
我希望您的 tomcat 应用程序具有良好的身份验证。请考虑使用其他机制(例如 LDAP)来控制对主机的 root 访问权限。