Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过python脚本实现ssh_Python_Ssh - Fatal编程技术网

通过python脚本实现ssh

通过python脚本实现ssh,python,ssh,Python,Ssh,这就是我的python脚本的样子 import os command = 'ssh testServer' os.system(command) 它给了我以下的错误 [Sun Aug 17 11:07:30 Adam@testServer:~/] $ python test.py ld.so.1: ssh: fatal: relocation error: file /usr/bin/ssh: symbol SUNWcry_installed: referenced symbol not fo

这就是我的python脚本的样子

import os
command = 'ssh testServer'
os.system(command)
它给了我以下的错误

[Sun Aug 17 11:07:30 Adam@testServer:~/] $ python test.py
ld.so.1: ssh: fatal: relocation error: file /usr/bin/ssh: symbol SUNWcry_installed: referenced symbol not found
Killed

当我从命令行执行Ssh命令时,它运行良好。只有在使用os/子流程模块从python脚本中尝试时,才会出现上述错误

您不应该使用操作系统,您应该使用:

比如你的情况:

 bshCmd = "ssh testServer"
 import subprocess
 process = subprocess.Popen(bshCmd.split(), stdout=subprocess.PIPE)
 output = process.communicate()[0]

如果您有任何问题,请告诉我

os.system有许多问题,子进程是执行unix命令的更好方法。使用以下配方:

import subprocess
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],
                           shell=False,
                           stdout=subprocess.PIPE,
                           stderr=subprocess.PIPE)

您考虑过使用ssh自动化包吗?类似于

所以您的ssh依赖于位于/opt/svn/current/lib中的库:“libz.So.1=>/opt/svn/current/lib/libz.So.1 libz.So.1(SUNW_1.1)”。它通过查看环境变量
LD\u library\u PATH
来查找此库。python中的os.system调用不保留此变量

import os
import subprocess
command = 'ssh testServer'
subprocess.Popen(command, shell=True, env=os.environ)

与环境变量
LD_LIBRARY_PATH
相关的问题。您可以从命令行和python系统调用.libsocket.so.1=>/lib/libsocket.so.1=>/lib/libnsl.so.1=>/lib/libnsl.so.1=>/lib/libnsl.so.1=>/libz.so.1=>/opt/svn/current/libz.so.1=>/libz.so.1(未找到版本)发布
ldd/usr/usr/bin/bin/bin/bin/bin/bin/bin/bin/ssh的输出吗10.9.7=>/usr/sfw/sfw/lib/sfw/lib/sfw/lib/9.7 LibGs.Sos.1.1=>/usr/Lir/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/libs/lib/lib/libs.7 libgss.7 Libss.7 Libss.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.1.1/libgen.so.1libcrypto_extra.so.0.9.7=>/usr/sfw/lib/libcrypto_extra.so.0.9.7 libm.so.2=>/lib/libm.so.2echo$LD_LIBRARY_PATH/opt/svn/current/liband运行python时$LD_LIBRARY_路径是什么?Hello@cartridgemeadow。。我使用了两个操作系统/子流程,看到了相同的结果。我最初在问题中明确了这一点。只是为了确认我使用了您的代码,但再次看到相同的错误…@user2812714,在运行ssh之前,您是否可以尝试运行“unset$LD_LIBRARY_PATH”;在取消设置它之前,请确保回显它并将它的内容从bash复制到文本文件中,以便以后可以重置它。如果从bash运行“ssh testServer”,它是否工作?如果是这样,那么这是一个python问题,与属性设置有关,我们可以找到解决方法!当我尝试取消设置unset$LD_LIBRARY_PATH-bash:unset:`/opt/svn/current/lib':不是问题中提到的有效标识,当我从bash执行它时,它确实起作用。我使用了问题中提到的两个子进程/操作系统。我仍然看到相同的问题请查看此链接