首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Paramiko,Python,Windows :如何使用SSH连接远程计算机并从远程计算机连接到NAS

Paramiko,Python,Windows :如何使用SSH连接远程计算机并从远程计算机连接到NAS
EN

Stack Overflow用户
提问于 2016-05-19 13:33:58
回答 2查看 7.8K关注 0票数 1

我见过几个与这个主题相关的问题和答案,但我一直无法掌握如何操作。

  1. 我能够做的是:使用使用Paramiko的Python脚本连接到远程计算机,并返回信息,例如,切换到ping: ssh = pk.SSHClient() ssh.set_missing_host_key_policy(pk.AutoAddPolicy()) ssh.connect('{}'.format(IP),port=xxx,用户名=‘xxx’,密码=‘xxx’) stdin,stdout,stderr =\ ssh.exec_command('ping -n 1 xxx.xxx.x.x\n') 打印(‘Ping开关:\n',stdout.readlines())
  2. 我想做什么,但不知道如何:连接一次计算机,然后使用SSH (paramiko.SSHClient())再次连接到另一个设备(在本例中是NAS)和‘exec_命令’,如下所示: ssh = pk.SSHClient() ssh.set_missing_host_key_policy(pk.AutoAddPolicy()) ssh.connect('{}'.format(IP),port=xxx,用户名=‘xxx’,密码=‘xxx’)#连接到计算机 ssh.connect('{}'.format(IP),port=xxx,用户名=‘xxx’,密码=‘xxx’)#从计算机连接到NAS stdin,stdout,stderr =\ Ssh.exec_command(‘send \n,y\n') #向NAS发送命令 打印(‘Ping开关:\n',stdout.readlines())

这有可能吗,有人知道办法吗?

提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2016-05-20 08:25:09

您必须打开隧道,检查paramiko演示或使用sshtunnel包。对于后者:

代码语言:javascript
运行
复制
import paramiko as pk
import sshtunnel

with sshtunnel.open_tunnel(
    remote_computer_ip,
    ssh_username=remote_username,
    ssh_password=remote_password,
    remote_bind_address=(NAS_IP, 22),
    debug_level='DEBUG',
) as tunnel:
    ssh = pk.SSHClient()
    ssh.set_missing_host_key_policy(pk.AutoAddPolicy())
    ssh.connect(NAS_IP,
                port=tunnel.local_bind_port,  # redirected to port NAS_IP:22
                username=NAS_USER,
                password=NAS_PASS)
    (stdin, stdout, stderr) = ssh.exec_command(...)   # your stuff
票数 0
EN

Stack Overflow用户

发布于 2016-05-19 14:02:39

你可以用更简单的方式来问这个问题。如果我没有错,你是否试图用paramiko连接到一台机器,从那台机器上连接到NAS机器?

或者您是否连接到1台机器,比如说A,然后您想要该机器的ssh句柄,并连接到NAS机器并生成另一个ssh句柄?

如果是后者,我建议您使用一个类并为每个ssh连接创建一个对象。你可以看看这个:

ssh.py

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37324836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档