密码已经设置完毕,现在我想登录多个服务器并对所有服务器运行命令。我试过这个
#! /bin/bash
for HOST in $(cat servers.txt ) ; do
ssh -o $HOST "uname -a" PreferredAuthentications=keyboard-interactive,password -o PubkeyAuthentication=no
done
但这没有帮助。
答案1
我会尝试规范的顺序
ssh -o PubkeyAuthentication=no \
-o PreferredAuthentications=keyboard-interactive,password \
$HOST "uname -a"
使用您的命令,ssh 将解释PreferredAuthentications=keyboard-interactive,password -o PubkeyAuthentication=no
为要发送到远程主机的参数。
为了使用 ssh 连接到远程主机,主要使用 3 种解决方案。
1) 遥控器密码
简单明了,您每次都输入远程主机的密码。
优点:无需设置
缺点:每次都要输入密码
2)无密码密钥对
您必须生成一对没有密码的私钥/公钥,将公钥部署在远程帐户中。
优点:无需输入密码
缺点:钥匙可能被盗
3) 密码保护的密钥对
您必须生成一对带有密码的私钥/公钥,在远程帐户中部署公钥。您可以将密钥加载到内存中 ( ssh-agent
) 或每次都输入密码密钥。
优点:密钥无法被盗
缺点:需要输入密码或加载/卸载
我无法找到您使用哪种连接。我认为ssha host
您评论中的“”中的“a”是一个拼写错误。由于您使用的是“密码短语”一词,我假设您在私钥上设置了密码,因为它是使用的表达式。
我的下一个猜测是让你尝试一下
ssh $HOST uname -a