【发布时间】:2019-05-17 21:09:55
【问题描述】:
我正在向 SSH 或 Telnet 远程主机编写 Python 代码,执行一些命令并获取结果输出。这里我们有一个跳转服务器,因此代码必须与该服务器“连接”,并从该服务器通过 Telnet 或 SSH 连接到远程主机。
我所有的方法在跳转服务器中都可以正常工作,例如我可以在其中获取命令的输出。问题是当我尝试从它远程连接到主机时。
import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect('IP', 22, username="user", password="pass")
stdin, stdout, stderr = client.exec_command("command")
for line in stdout:
print('... ' + line.strip('\n'))
client.close()
使用库 jumpssh 得到相同的结果,而我无法 Telnet 主机。我尝试了以下方法,但得到错误
行政禁止。
from jumpssh import SSHSession
gateway_session = SSHSession('jumpserver','user', password='pass').open()
remote_session = gateway_session.get_remote_session('IP',password='pass')
print(gateway_session.get_cmd_output('command'))
在我工作的最后一家公司,我们从一个支持 Python 脚本的 SSH 客户端获得了许可证,并且在更“文本”的处理中运行良好。
有什么方法可以在 Python 中本地完成相同的任务?
【问题讨论】:
标签: python ssh telnet paramiko portforwarding