在Brocade交换机上使用Paramiko执行命令

时间:2015-06-02 17:55:27

标签: python ssh paramiko switching

我正在尝试使用Paramiko SSH连接到Brocade交换机并执行远程命令。代码如下:

def ssh_connector(ip, userName, passWord, command):
 ssh = paramiko.SSHClient()
 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 ssh.connect(ip, username=userName, password=passWord, port=22)
 stdin, stdout, stderr = ssh.exec_command(command)
 print stdout.readlines()

ssh_connector(ip, userName, passWord, 'show running-config')

在尝试运行代码时,遇到一个奇怪的错误,如下所示。

  

协议错误,不以scp开始!

我不知道错误的原因或SSH连接是否成功。你能帮帮我吗?

1 个答案:

答案 0 :(得分:4)

Brocade SSH服务器上的“exec”通道似乎只能支持scp命令。因此,您无法将代码与SSHClient.exec_command一起使用。

当你声称能够“SSH”到交换机时,似乎“shell”通道完全正常工作。

您应该能够使用SSHClient.invoke_shell并使用Channel.send将命令写入通道(= shell)。

channel = ssh.invoke_shell()
channel.send('ls\n')
channel.send('exit\n')