def exec_command(self, command, bufsize=-1):
#print "Executing Command: "+command
chan = self._transport.open_session()
chan.exec_command(command)
stdin = chan.makefile('wb', bufsize)
stdout = chan.makefile('rb', bufsize)
stderr = chan.makefile_stderr('rb', bufsize)
return stdin, stdout, stderr
在 paramiko 中执行命令时,它总是会在您运行 exec_command 时重置会话。我希望能够执行 sudo 或 su,并且在运行另一个 exec_command 时仍然拥有这些特权。另一个例子是尝试执行 exec_command(“cd /”) 然后再次运行 exec_command 并将其放在根目录中。我知道您可以执行类似 exec_command(“cd /; ls -l”) 的操作,但我需要在单独的函数调用中执行。
原文由 Takkun 发布,翻译遵循 CC BY-SA 4.0 许可协议
非交互式用例
这是一个 非交互式 示例……它发送
cd tmp
,ls
然后exit
。交互式用例
如果您有交互式 ssh 用例,
paramiko
可以处理它…我个人会使用scrapli
来驱动交互式 ssh 会话。列出我能想到的所有交互使用
paramiko
的方法:paramiko
我可能错过了一些使用
paramiko
的库,但应该清楚的是paramiko
被控制 ssh 会话的 python 库广泛使用。