其他分享
首页 > 其他分享> > 在Brocade交换机上使用Paramiko执行命令

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

作者:互联网

我正在尝试使用Paramiko将SSH 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')

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

Protocol error, doesn’t start with scp!

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

解决方法:

Brocade SSH服务器上的“ exec”通道似乎已实现为仅支持scp命令.因此,您不能将代码与SSHClient.exec_command一起使用.

正如您声称能够“ SSH”到交换机一样,似乎“ shell”通道已完全正常工作.

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

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

标签:ssh,switching,python,paramiko
来源: https://codeday.me/bug/20191028/1951054.html