使用Python(sftp)更改远程Linux系统的密码

时间:2019-07-10 20:00:00

标签: python linux sftp paramiko change-password

这看起来非常简单,但是我搜索了多个资源,但是找不到如何使用Python和SFTP更改远程Linux系统密码的答案。

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 个答案:

答案 0 :(得分:3)

您不能使用SFTP协议更改密码。

您可以使用SSH协议更改密码。但是,最流行的SSH服务器-OpenSSH不支持用于更改密码的SSH协议API。也没有最广泛的Python SSH库Paramiko支持。因此,无论如何,这极有可能对您不起作用。

因此,最后唯一可行的选择是通过SSH(例如,使用Paramiko)执行相关的Shell命令(passwdchpasswd)。