【发布时间】:2019-07-10 20:00:00
【问题描述】:
看起来很简单,但我搜索了多个资源,但找不到关于如何使用 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()
【问题讨论】:
-
您不能使用 SFTP 协议更改密码 – 无论您使用什么 Python 库/模块,或者您是否使用任何其他语言或工具 – SFTP protocol 没有更改密码的能力。 – 您可以使用 SSH 协议或 shell 更改密码。
-
继@MartinPrikryl 所说:不能使用该协议完成;至少不是以一种被认为安全的方式。 如果您以 root 身份进行 sftp 操作,您可以只替换影子文件,但这几乎是犯罪行为。
-
@MartinPrikryl,谢谢您的 cmets。如果我通过 SSH 来做,有没有可以使用的内置模块?
-
看来我需要做这样的事情
import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('<hostname>', username='<username>', key_filename='private-key-file>')
标签: python linux sftp paramiko change-password