0

カスタム ssh シェルに接続するための次のスクリプトがあります。スクリプトを実行すると、ハングします。コマンドを実行しません。シェルにはプロンプトがないため、シェルに問題があると思われます。何か考えはありますか?

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

私はこの問題に多くの時間を費やしました。Tandberg C/E シリーズ ビデオ エンドポイントでグリーティング バナーを過ぎたものを取得できるようにするには、invoke_shell() を使用する必要があることがわかりました。これが私の作業コード、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

カスタムシェルです。cisco ex90 ビデオ会議システムです。しかし、構成を表示する xconfig などのさまざまなコマンドを試しました。

于 2013-11-08T10:56:13.093 に答える