这看起来非常简单,但是我搜索了多个资源,但是找不到如何使用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()
答案 0 :(得分:3)
您不能使用SFTP协议更改密码。
您可以使用SSH协议更改密码。但是,最流行的SSH服务器-OpenSSH不支持用于更改密码的SSH协议API。也没有最广泛的Python SSH库Paramiko支持。因此,无论如何,这极有可能对您不起作用。
因此,最后唯一可行的选择是通过SSH(例如,使用Paramiko)执行相关的Shell命令(passwd
或chpasswd
)。