【发布时间】:2023-04-21 15:23:01
【问题描述】:
我对 Paramiko 的工作方式相当陌生,但我的主要目标是能够使用 Python 通过 SSH 运行自动化命令。
我有以下代码,我正在尝试运行一个简单的 ls 命令以开始,但由于某种奇怪的原因,代码似乎卡住了,并且没有产生任何输出或错误消息。
import sys
import paramiko as pm
sys.stderr = sys.__stderr__
import os
class AllowAllKeys(pm.MissingHostKeyPolicy):
def missing_host_key(self, client, hostname, key):
return
HOST = '192.168.31.1'
USER = 'admin'
PASSWORD = 'admin'
client = pm.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(pm.AutoAddPolicy())
client.connect(HOST, username=USER, password=PASSWORD)
channel = client.invoke_shell()
stdin = channel.makefile('wb')
stdout = channel.makefile('rb')
stdin.write('''
ls
exit
''')
print stdout.read()
stdout.close()
stdin.close()
任何帮助将不胜感激:)
【问题讨论】:
-
你确定
stdin和stdout没有倒置吗? -
@mrpopo,你可以使用 pexpect 模块而不是 paramiko
-
我最初想使用 pexpect,但我使用的是 windows 机器:/ 无法在 windows 上导入资源。不用担心,我将虚拟化一个 debian 客户端并学习 pexpect。
标签: python python-2.7 ssh paramiko