0

使用 sshpass 命令时有没有办法尝试多个密码?我有一个名为 hosts.txt 的 txt 文件,其中列出了多个系统 IP 地址,并且每个系统使用不同的密码(例如 - 'mypasswd'、'newpasswd、nicepasswd')。该脚本读取 hosts.txt 文件并在每个系统上执行一组命令。由于我不知道哪个系统使用这些给定密码中的哪一个,我想尝试所有这些设置以及 sshpass 命令并使用有效的密码执行脚本。这可能吗?

#!/bin/bash

while read host; do
  sshpass -p 'mypasswd' ssh -o StrictHostKeyChecking=no -n root@$host 'ls;pwd;useradd test'
done < hosts.txt
4

1 回答 1

1

不是尝试获取基于密码的身份验证,而是设置基于密钥的身份验证的选项吗?然后,您可以将您的一个公钥添加到所有系统,也可以选择生成不同的公钥并使用该-i keyfile选项或在 ssh 配置文件中创建一个条目,如下所示。

Host a
  IdentityFile /home/user/.ssh/host-a-key
于 2014-03-19T13:13:20.697 回答