shell脚本中的SSH连接与用户

时间:2014-11-03 08:15:15

标签: linux shell ssh centos

我有两个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一样,但我不知道这是否可行。 谢谢!

1 个答案:

答案 0 :(得分:0)

为了保持安全,但要完成这项工作,您需要执行以下操作:

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