【问题标题】:SSH connection in shell script with an user与用户的 shell 脚本中的 SSH 连接
【发布时间】:2014-12-29 20:53:38
【问题描述】:

我有两台 CentOS 6.5 服务器,我有一个非常复杂的 shell 脚本连接这两台服务器,并使用 root 用户在没有密码的情况下进行一些备份。为此有一些 rsa 密钥。 为了安全起见,我在两台服务器上都禁用了 root 登录,并尝试将脚本更改为使用 root 用户,但它不起作用。我已将用户权限从 /etc/sudoers 更改为用户 ALL=(ALL) ALL。 如果我使用 ssh-keygen -t rsa 生成另一个 ssh 密钥,它会说我没有权限,如果我使用 sudo ssh-keygen -t rsa,他会为我创建一个 root@server 的密钥。 我认为如果我可以更改用户权限以在没有“sudo”的情况下运行 sudo 命令(如 root),问题将得到解决,但我不知道这是否可能。 谢谢!

【问题讨论】:

  • 如果您需要脚本方面的帮助,请向我们展示您的脚本。如果没有您需要帮助的代码,这不是一个编程问题,因此与 StackOverflow 无关。

标签: linux shell ssh centos


【解决方案1】:

为了维护安全,还没有完成这项工作,你需要做以下事情:

  1. 创建一个新的用户帐户,仅用于此特定工作。
  2. 给这个用户一个 ssh-key 来自动登录而无需密码。
  3. 为了明显的安全性,登录 shell 不应该是 /bin/bash 原因。您可以设置 SSH 连接以运行某些程序/命令 对于这个特定的用户。我不想在这里解释细节。 请在网上搜索此问题的答案。
  4. 由于这个程序需要root权限,而这个用户不是 root,您需要设置一个有效的可执行权限为 根(即setuid)。要使其只能由该特定用户(和 root)执行, 你需要创建一个新组,设置这个用户加入这个组, 并将程序设置为可由该组执行(chmod 4770, 4 对于 setuid,770 可由组和所有者执行)。这 程序必须由 root 拥有(以便它 setuid 为 root),并分配组 到那个特定的群体。该程序可以是二进制可执行文件或脚本。 没关系。
  5. 警告:您的 setuid 程序/脚本必须非常小心,不要 包含可利用的安全漏洞。

【讨论】:

    猜你喜欢
    • 2012-04-06
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 2016-12-20
    • 2015-02-21
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    相关资源
    最近更新 更多