Я подумал, что должен поставить свое решение в поле ответа - не уверен, должно ли это быть частью вопроса.
Хорошо, я собрал частично работающее решение, используя предложение Денниса.
servers.txt выглядит так:
server1
server2
server3
.
.
.
Я использую:
for server in `cat servers.txt`; do
ssh $server -l user 'passwd <<EOF
old_pass
new_pass
new_pass
EOF';
done
Это производит:
user@server1's password: **<Type password manually>**
(current) UNIX password: New UNIX password: Retype new UNIX password: Changing password for user user.
Changing password for user
passwd: all authentication tokens updated successfully.
user@server2's password: **<Type password manually>**
(current) UNIX password: New UNIX password: Retype new UNIX password: Changing password for user user.
Changing password for user
passwd: all authentication tokens updated successfully.
Так что здесь мне все еще нужнонабрать мой старый пароль один раз для каждого сервера.Можно ли этого избежать?