使用不同密码 ssh 多个服务器的脚本

使用不同密码 ssh 多个服务器的脚本

我有一个脚本,可以通过 ssh 在多台服务器上执行相同的命令。

spawn ssh [lindex $argv 0]
send "sudo /usr/sbin/useradd ytkatchen"
expect "password:"
send "Unix\@999\r"

我在所有服务器上的密码并不相同。我对很多服务器都使用了 2 个不同的密码。

我的要求是脚本应该建立 ssh 连接并使用正确有效的密码才能使工作继续进行。

如果密码错误,它不应该执行,而应该尝试其他密码并继续。

答案1

更简单的方法是使用 ssh 密钥而不是密码。

您可以为每个服务器生成一个 ssh 密钥对,并使用它们自动连接而无需使用密码。

由于您不需要在脚本中提示或存储任何密码,因此它的安全性也更好。

答案2

您可以在服务器上设置无密码,sudo这样您就不必担心输入密码。快速指南:

$ sudo visudo

在文件末尾添加新行:

EditThisToYourUsername ALL=(ALL) NOPASSWD:ALL

注意:用户名和ALL之间有一个制表符。

保存文件(Escape、:x、Enter)。

另一个解决方案是,您可以监听命令的退出代码sudo来了解您输入的密码是否正确。

相关内容