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

2024-09-19 14:27:52 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

Protocol error, doesn't start with scp!

我不知道错误的原因,也不知道SSH连接是否成功。你能帮我拿这个吗?在


Tags: 代码ipparamikoconnector远程错误stdoutusername
1条回答
网友
1楼 · 发布于 2024-09-19 14:27:52

Brocade SSH服务器上的“exec”通道似乎只支持scp命令。因此不能将代码与^{}一起使用。在

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

虽然通常不建议使用“shell”通道进行命令自动化,但是对于您的服务器,您没有其他选择。使用^{}并使用^{}将命令写入通道(=到shell)。在

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

另请参见What is the difference between exec_command and send with invoke_shell() on Paramiko?

相关问题 更多 >