另一种可能性:在一台服务器上手动更改它。从/ etc/shadow中获取加密的密码。现在,做这样的事情:
for host in $HOST_LIST; do
ssh $host "passwd -p 'encrypted_passwd' user"
done
当然,“encrypted_passwd”是你离开了/ etc/shadow文件的,你手动更改了密码,$ HOST_LIST是你想要的密码的主机列表。改变。这可能简单地创建:
export HOST_LIST="server1 server2 server15 server67"
或许与文件(如其他建议):
export HOST_LIST=`cat host_list.txt`
凡文件“host_list.txt”拥有所有系统的列表,你想要更改密码。
编辑:如果你的passwd版本不支持-p选项,你可能有'usermod'程序可用。上面的例子保持不变,只需将'passwd'替换为'usermod'即可。
此外,你可以考虑useful tool pdsh,这将简化上述例子是这样的:
echo $HOST_LIST | pdsh -Rssh -w- "usermod -p 'encrypted_passwd' user"
最后一个“疑难杂症”看出来的:加密的密码可能包含美元符号( '$')作为字段分隔符。您可能必须在for循环或pdsh命令中将其转义(即“$”变为“\ $”)。在squashbuff的例子
更改系统管理员? – TLP
不幸的是没有一个选项.. :) – squashbuff