簡體   English   中英

Python paramiko sudo不起作用

[英]Python paramiko sudo doesnt work

我正在嘗試使用Python Paramiko 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()

sudo對於您正在使用的TTY以非常特定的方式表現,以保持其安全性。 有一個命令行選項可將提示寫入stderr並從stdin讀取,而不是sudo直接處理TTY。

嘗試:

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

如果您要執行系統管理任務,那么很多框架已經完成。 如果您願意為大多數事情編寫python,或者喜歡Ansible之類的工具仍然可以通過ssh控制事物,但是以更簡單的yaml格式編寫策略,則可以看看Fabric

您也可以使用atexit模塊。 它在退出時清除我的功能。 我這樣使用它: atexit.register(client.close)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM