0

我有以下脚本可以连接到自定义 ssh shell。当我执行脚本时,它只是挂起。它不执行命令。我怀疑 shell 有问题,因为它没有任何提示。你有什么主意吗?

import sys
import os
import paramiko


ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('10.115.130.22', username='admin', password='xxx', timeout = 30)
stdin, stdout, stderr = ssh.exec_command('xconfiguration SystemUnit Name: devicename')
print stdout.readlines()
ssh.close()`
4

2 回答 2

2

我在这个问题上花太多时间。我发现我需要使用invoke_shell() 才能通过Tandberg C/E 系列视频端点上的问候横幅获得任何东西。这是我的工作代码,FWIW:

import time
import paramiko

command = 'help'

host = 'x.x.x.x'
port = 22
user = 'admin'
passwd = 'TANDBERG'

def tbgShell(host,port,username,password,cmd):
    """send an arbitrary command to a Cisco/TBG gizmo's ssh and 
    get the result"""
    transport = paramiko.Transport((host, port))
    transport.connect(username = user, password = passwd)
    chan = transport.open_channel("session")
    chan.setblocking(0)
    chan.invoke_shell()

    out = ''

    chan.send(cmd+'\n')

    tCheck = 0

    while not chan.recv_ready():
        time.sleep(1)
        tCheck+=1
        if tCheck >= 6:
            print 'time out'#TODO: add exeption here
            return False
    out = chan.recv(1024)

    return out

output = tbgShell(host, port, user, passwd, command)

print output
于 2014-02-12T16:17:19.643 回答
-1

这是一个自定义外壳。它是思科 ex90 视频会议系统。但是我尝试了不同的命令,例如 xconfig 向您显示配置。

于 2013-11-08T10:56:13.093 回答