Python paramiko sudo没有

2024-09-27 23:26:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用pythonparmiko ssh模块自动管理linux,除了sudo之外,一切都很好。我使用stdin.write()stdin.flush()跟踪了sudo的paramiko文档,但是没有运气远点。拜托帮我一下。在

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host,username=uname,password=pwd)
print('Successfully authenticated on'+ " " +host)            
print "\n"
stdin,stdout,stderr = ssh.exec_command('sudo ls')
stdin.write(pwd+'\n')
stdin.flush()
print stdout.readlines()
ssh.close()

Tags: 模块文档hostparamikolinuxstdinstdoutpwd
2条回答

您也可以使用atexit模块。它在退出时清除我的函数。 我这样使用它:atexit.register(client.close)

sudo在TTY上的行为方式非常具体,以保持其安全性理念。有一个命令行选项可以将提示写入stderr并从stdin读取,而不是sudo直接处理TTY。在

尝试:

stdin, stdout, stderr = ssh.exec_command('sudo -S ls')

如果您是为了系统管理任务而这样做的话,那么很多框架已经完成了。如果您愿意为大多数事情编写python,或者像Ansible这样的东西仍然可以控制ssh,但可以用一种更简单的yaml格式编写策略,那么您可以看看Fabric。在

相关问题 更多 >

    热门问题