Изменение пароля удаленной системы Linux с использованием Python (sftp) - PullRequest
1 голос
/ 10 июля 2019

Это кажется очень простым, но я искал несколько ресурсов, но не смог найти ответ о том, как изменить пароль удаленной системы Linux, используя Python и SFTP.

def changepwd():
    sftp_client = ssh.open_sftp()
    #change password of root on remote server

Есть ли встроенные модули?что я могу использовать, чтобы изменить пароль?Заранее спасибо.


Спасибо за помощь.Вот как я изменил пароль для «root».

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, username=Name, password=Pwd)
print "Connection succesfully established ...with %s " % hostname

stdin, stdout, stderr = ssh.exec_command('echo -e "newpasswd\newPasswd" | passwd')
print "stderr: ", stderr.readlines()
print "pwd: ", stdout.readlines()
ssh.close()

1 Ответ

3 голосов
/ 11 июля 2019

Нельзя сменить пароль по протоколу SFTP.

Вы можете изменить пароль по протоколу SSH. Но API протокола SSH для смены пароля не поддерживается самым распространенным SSH-сервером - OpenSSH. Он также не поддерживается самой распространенной библиотекой Python SSH - Paramiko. Так что, скорее всего, у вас все равно не получится.

Таким образом, в конце концов, единственно возможным вариантом является выполнение соответствующей команды оболочки (passwd или chpasswd) через SSH (например, с использованием Paramiko).

...