无密码 SSH,可针对任何给定主机尝试的可能密码列表

无密码 SSH,可针对任何给定主机尝试的可能密码列表

所以我知道要启用无密码 SSH,我需要生成一个公共身份验证密钥并将其附加到远程主机 ~/.ssh/authorized_keys 文件,从而生成一个新的 SSH 密钥对。

问题是我是否可以拥有一组密码并逐个尝试,直到找到正确的密码,或者我是否需要拥有实际的密码对?所以知道哪个主机有什么密码。 原因:我有数千台主机,我不知道哪些主机有什么密码,但我确实有所有可能的密码列表。

我想使用 GNU 与 ssh 并行,但为此我需要无密码 SSH。

我想另一个选择是并行运行我的脚本,尝试不同的密码直到成功。

答案1

sshpass这样做。

您可以在受信任的系统上运行它(例如,没有攻击者:如果另一个用户运行,密码将以明文形式显示ps)。

testone() { sshpass -p "$1" ssh "$2" echo OK; }
export -f testone
parallel --tag -k testone :::: passwords.txt hostlist.txt 2>/dev/null

请注意,如果您连续猜错 3 次,某些系统会将其视为攻击,并因此将您锁定一段时间。因此,您应该跟踪您的成功并将其从hostlist.txt.

相关内容