python - 使用 Paramiko 进行端口转发

标签 python ssh paramiko

我正在尝试使用 Paramiko 从 python 应用程序进行一些端口转发。我可以很好地设置 SSH 连接,但我对如何使用 paramiko.Transport 有点困惑。我已经找到了 this file ,但我无法弄清楚其中发生了什么。通过查看 paramiko.Transport docs ,似乎是一行使用 open_channel 函数,但我不知道如何实现它。我正在尝试复制一个简单的 ssh -L 8000:localhost:8000

谁能帮帮我?

最佳答案

请使用 paramiko-1.7.7.1pycrypto-2.6forward.py script 查找一些代码我确实从中删除了第 115 行到末尾的代码(以避免选项解析)。

import paramiko, sys
from forward import forward_tunnel

remote_host = "target_host"
remote_port = 8000
local_port  = 8000
ssh_host    = "my_ssh_host"
ssh_port    = 22

user     = "login"
password = "s3cr3t"

transport = paramiko.Transport((ssh_host, ssh_port))

# Command for paramiko-1.7.7.1
transport.connect(hostkey  = None,
                  username = user,
                  password = password,
                  pkey     = None)

try:
    forward_tunnel(local_port, remote_host, remote_port, transport)
except KeyboardInterrupt:
    print 'Port forwarding stopped.'
    sys.exit(0)

我已经从 Windows 站成功测试了它,使用 Red Hat 下的 ssh 服务器并指向第三台服务器。 (我正在使用 Python 2.7.2)

希望对你有帮助

关于python - 使用 Paramiko 进行端口转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32961509/

相关文章:

python - Sklearn 数据集

python - 如何在 Windows 10 上为 discord.py 设置 ffmpeg

mongodb - 通过 MongoDB Compass 社区连接到 EC2

从家里的 Azure ssh 连接

python - 使用 Paramiko 组合交互式 shell 和 receive_exit_status 方法

python - Paramiko - 远程命令执行

python - 将数据帧的所有行转换为数组并传递给函数

用于访问 GKE 上的 Kubernetes 集群的 Python 客户端

python - sqlalchemy 连接到 VPS 数据库

python - 如何避免【Errno 12】使用子进程模块导致的Cannot allocate memory错误