我正在尝试使用Robotframework SSH执行命令以在远程计算机中创建数据库,这将引发特权错误。但是,如果我尝试在PUTTY应用程序上运行同一命令或使用Paramiko库,它将无缝运行。我该如何解决这个问题?
首先,我尝试直接通过腻子应用程序执行命令,并且命令执行正常。但是当我使用SSHLibrary在python Shell中执行时,将引发以下错误。
from SSHLibrary import SSHLibrary # library from Robotframework
ob=SSHLibrary()
ob.open_connection("192.168.5.10")
ob.login("Administrator","Password")
print ob.execute_command("db2 create db test7")
输出将为::
u'SQL1092N The requested command or operation failed because the user ID
does \r\r\nnot have the authority to perform the requested command or
operation. User \r\r\nID: "LOCAL SERVICE".\r\r'
如果我直接使用paramiko库执行上述命令,它将成功创建数据库 这是工作代码:
import paramiko
c=paramiko.Transport(('192.168.5.10',22))
c.connect(username='Administrator',password='Password')
sess=c.open_channel(kind='session')
sess.exec_command('db2 create db test7')
print sess.recv(4096)
输出将是:
DB20000I The CREATE DATABASE command completed successfully.
尽管 SSHLibrary内部依赖于paramiko 库,但它无法执行命令。但是,如果我直接使用paramiko库,它将像腻子应用程序一样正确执行。我想知道它如何不能从Robot SSHLibrary中使用。有人请帮助我解决此问题...
注意:远程计算机是安装了cygwin的Windows,用于启用SSH!