有没有办法通过脚本将 SSH/SCP 以不同的用户身份连接到另一台服务器?

Kev*_*n K 4 automation ssh scp

我需要自动化一种将文件分发到许多服务器的方法。问题当然是我需要使用安全协议(SSH 或 SCP)并且每个服务器上的用户名/密码不同。

场景是我们有一个主服务器 a,用户 a_prod,我们需要将更新的脚本/配置等发送到服务器 b、c、d ……在这些服务器上,用户名是 b_dev、c_test、d_prod每个都有唯一的密码。

出于一些原因,用户名需要在不同环境中是唯一的,处理 DB2 和公司安全。

共享密钥在这种情况下不起作用,因此我需要通过脚本传递用户名和密码。是AIX环境,我没有安装expect的能力。

有任何想法吗?

下面的多个回复中提到了共享密钥:我尝试了几种方法来做到这一点,我认为主要问题是远程用户 ID 不存在于任何其他主机上,因此我无法在主机上为它们执行 ssh-keygen我想通过 ssh 执行共享密钥实现,主用户 (a_prod) 具有多个身份,具体取决于目标主机 (b_dev、c_test_d_prod)。这些用户的私钥需要在主机a上为远程用户生成,然后他们的公钥需要复制到目标主机。

Kyl*_*ndt 9

“公司S(愚蠢)”:-)

我认为 SSH / SCP 通常与 UNIX 哲学领域共存。Unix 应用程序的设计者故意使管理员不能轻易做一些愚蠢的事情是非常罕见的。通常会有这样的警告:“您可能不想这样做,因为……但是,如果您真的想这样做,那很好!”。

在脚本中将密码传递给 ssh 的情况下,他们故意使这变得困难,因为这真是个坏主意

在这一点上,我什至不会理会 SSH。您确实需要与公司安全人员交谈,并为该场景提出一个真正的解决方案。如果他们不想使用钥匙,请询问他们您应该怎么做。如果这不起作用,请告诉您的经理,由于公司安全限制,他们无法实现的目标。如果经理确实坚持要你这样做,请写下来,否则就是你的屁股

  • 您似乎对 ssh 密钥感到困惑。~/.ssh 中的文件只能由它们所属的用户读取。连接的用户有 *private* 密钥,通常在 ~/.ssh/id_{d,r}sa.pub 但可以在任何地方并通过 -i 指定给 ssh,并且它连接的用户具有相应的 *public * 输入 ~/.ssh/authorized_keys (4认同)