В общем есть такая задача. Есть панель администратора, в которой есть функционал смена пароля пользователя.
Идея такая: вызываем из под PHP скрипт, который логинится по SSH к серверу под рутом и меняет пароль пользователя. Пароль рута мы знаем.
От моего предшественника достался такой код:
#!/usr/bin/expect
set USER [lindex $argv 0]
set PASS [lindex $argv 1]
set HOST [lindex $argv 2]
spawn ssh root@$HOST
expect "word:"
send "123456\r"
expect "$*"
send "echo \"$USER:$PASS\" | chpasswd \r"
send "exit\r"
expect eof
Вызывается с помощью PHP так:
system("./do.py ".$user." ".$new_password." ".$did->did);
Выше приведенный код не работает, возможно проблема в некорректной обработки expect.
И мне кажется есть более нормальный вариант смены пароля. К сожалению ставить доп. софт и библиотеки на сервер и клиентов не могу. Я не могу что либо закидывать на остальные ПК, даже файлы ключей.
Как лучше всего соединиться с сервером и поменять пароль?