linux - 允许用户在不提供 ssh 密钥的情况下从服务器请求文件 (sudo+ssh+rsync)
问题描述
我有一个运行 Linux 的硬件产品。该产品使用 ssh(带有密钥)连接到服务器,并使用rsync下载一些文件。一切正常。假设这是由用户Tom在他的 Linux 帐户中完成的。
现在,我想让事情对用户 Tom 更加透明,并避免他直接访问 ssh 密钥和我的服务器。我的解决方案如下:
- 从服务器取消注册 Tom 的 ssh 密钥。
- 在我的 Linux 产品上创建一个名为serverAdmin的 Linux 用户。
- 创建 ssh 密钥并 在服务器上注册用户serverAdmin 。
- 在我的 Linux 产品上创建一个名为updateFilesFromServer.sh的脚本(连接到ssh服务器并运行rsync)。
- 仅将updateFilesFromServer.sh的权限分配给serverAdmin用户。
- 允许用户Tom通过sudo ( tom@product:~/$ sudo updateFilesFromServer.sh )访问updateFilesFromServer.sh
这行得通吗?有更好的解决方案吗?关键思想是允许用户更新产品,而无需向他提供服务器的 ssh 密钥。
提前致谢。
解决方案
推荐阅读
- laravel - Laravel 8通过Gmail发送邮件获取stream_socket_client():无法连接到tcp://smtp.gmail.com:587(连接超时)
- python-3.x - 在 Python 中检查两个字符串列是否相互包含
- sql - VBA - 将字符串转换为日期时间以与 SQL 中的日期进行比较
- javascript - 在 React 中反映状态变化时避免无限的 useEffect 循环
- regex - 正则表达式替换为空行
- java - RecylerView 项目的 maxWidth 因大量元素而变化
- scala - 如何在 scala for collatz 链中提高 tailrec 函数的执行时间
- javascript - 为什么最后一项计数没有在删除时过滤?
- wordpress - 如何使用 AMP 循环播放一系列视频?
- laravel - Laravel - what does the manual paginations 'option' query parameter do?