首页 > 解决方案 > Python:SSH 到远程终端和 telnet 到 localhost

问题描述

我对python有点陌生。我正在尝试通过 SSH 连接到远程(本地网络)计算机,然后从那里 telnet 到 localhost。从那里,我想自动化一些我将通过 SSH 隧道发送到 telnet 的命令。

我已经能够使用下面的代码通过 SSH 登录。使用此代码,我可以使用例如ssh("pwd")yielding发送命令['/home/jango\n'],作为我的 IDLE shell 中的输出。这也适用于其他命令。

我非常想从这里远程登录到本地主机。我通常会去telnet localhost 2323,(当我只是通过我的终端手动进行 SSH 和 telnet 时)我会从那里发送命令,但是当我尝试时ssh("telnet localhost 2323"),我没有从 IDLE 获得任何输出,并且命令永远不会完成(我没有回到>>>)。

谁能帮我?

#define vaiables
host="1.1.1.1"
username="jango"
password="unchained"
port=22

#Import everything. I know this is too much.
import base64
from binascii import hexlify
import getpass
import os
import select
import socket
import sys
import time
import traceback
import paramiko
from paramiko.py3compat import input

#defining sshclient
sshclient = paramiko.SSHClient() # This works, but this other one does not work. Why?? #from paramiko import SSHClient as ssh
sshclient.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #ignores missing key
sshclient.connect(host, port, username, password) #logs in

def ssh(command):
    stdin, stdout, stderr = sshclient.exec_command(command)
    lines = stdout.readlines()
    print(lines)

标签: pythonsshtelnet

解决方案


推荐阅读