首页 > 解决方案 > 允许用户在不提供 ssh 密钥的情况下从服务器请求文件 (sudo+ssh+rsync)

问题描述

我有一个运行 Linux 的硬件产品。该产品使用 ssh(带有密钥)连接到服务器,并使用rsync下载一些文件。一切正常。假设这是由用户Tom在他的 Linux 帐户中完成的。

现在,我想让事情对用户 Tom 更加透明,并避免他直接访问 ssh 密钥和我的服务器。我的解决方案如下:

  1. 从服务器取消注册 Tom 的 ssh 密钥。
  2. 在我的 Linux 产品上创建一个名为serverAdmin的 Linux 用户。
  3. 创建 ssh 密钥并 在服务器上注册用户serverAdmin 。
  4. 在我的 Linux 产品上创建一个名为updateFilesFromServer.sh的脚本(连接到ssh服务器并运行rsync)。
  5. 仅将updateFilesFromServer.sh的权限分配给serverAdmin用户。
  6. 允许用户Tom通过sudo ( tom@product:~/$ sudo updateFilesFromServer.sh )访问updateFilesFromServer.sh

这行得通吗?有更好的解决方案吗?关键思想是允许用户更新产品,而无需向他提供服务器的 ssh 密钥。

   提前致谢。

标签: linuxsshpermissionssudorsync

解决方案


推荐阅读