如果SSHClient.exec_command
不工作时,首先认为测试是尝试(上一个 行):
ssh user@host command
它将使用与相同的SSH API(“ exec”通道)SSHClient.exec_command
。如果您使用的是Windows,则可以使用plink
(从PuTTY软件包中)代替ssh
。如果ssh
/也plink
失败,则表明您的设备不支持SSH“ exec”通道。
对于您的情况,看来Brocade SSH服务器上的“ exec”通道已实现为scp
仅支持该命令。
正如您声称能够“ SSH”到交换机一样,似乎“ shell”通道已完全正常工作。
虽然通常不建议使用“ shell”通道进行命令自动化,但是对于服务器,您将没有其他选择。使用,SSHClient.invoke_shell
然后使用将命令写入通道(=写入外壳)Channel.send
。
channel = ssh.invoke_shell()
channel.send('ls\n')
channel.send('exit\n')