linux - 在 Mathematica 中运行 ssh 命令

标签 linux ssh wolfram-mathematica

最近我一直在尝试从 Mathematica 笔记本运行 shell ssh 命令。我尝试了几种建议的方法,但没有取得积极的结果。我对答案的搜索导致我得到以下结果:

RunProcess[$SystemShell, All, " ssh <login>@<server> exit "]

但这会产生以下错误

<|"ExitCode" -> 127, "StandardOutput" -> "", "StandardError" -> "ssh: /usr/local/Wolfram/Mathematica/10.0/SystemFiles/Libraries/\ Linux-x86-64/libcrypto.so.1.0.0: no version information available \ (required by ssh) ssh: /usr/local/Wolfram/Mathematica/10.0/SystemFiles/Libraries/\ Linux-x86-64/libcrypto.so.1.0.0: no version information available \ (required by ssh) ssh: relocation error: ssh: symbol EVP_aes_128_ctr, version \ OPENSSL_1.0.1 not defined in file libcrypto.so.1.0.0 with link time \ reference "|>

你知道如何解决这个问题吗?

附注我的总体目标是在外部服务器和 Mathematica 笔记本之间导入和导出数据。

最佳答案

我发现 Mathematica 强制依赖库。如果我在终端中使用 ldd/usr/bin/ssh 命令,我将获得以下输出:

linux-vdso.so.1 => (0x00007fffb31fe000) libselinux.so.1 =>/lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f2a309a7000) libcrypto.so.1.0.0 =>/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f2a305cd000) libdl.so.2 =>/lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2a303c8000) libz.so.1 =>/lib/x86_64-linux-gnu/libz.so.1 (0x00007f2a301af000) libresolv.so.2 =>/lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f2a2ff94000) libgssapi_krb5.so.2 =>/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f2a2fd4d000) libc.so.6 =>/lib/x86_64-linux-gnu/libc.so.6 (0x00007f2a2f987000) libpcre.so.3 =>/lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f2a2f749000) /lib64/ld-linux-x86-64.so.2 (0x00007f2a30e87000) libkrb5.so.3 =>/usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f2a2f47d000) libk5crypto.so.3 =>/usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f2a2f24e000) libcom_err.so.2 =>/lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f2a2f04a000) libkrb5support.so.0 =>/usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f2a2ee3e000) libkeyutils.so.1 =>/lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f2a2ec3a000) libpthread.so.0 =>/lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2a2ea1b000)

但在 Mathematica 中做同样的事情:

RunProcess[$SystemShell, 全部, " ldd/usr/bin/ssh 导出 ”]

给出了不同的依赖:

libcrypto.so.1.0.0 =>/usr/local/Wolfram/Mathematica/10.0/SystemFiles/Libraries/Linux-x86-64/libcrypto.so.1.0.0 (0x00007f30fbe3c000) libz.so.1 =>/usr/local/Wolfram/Mathematica/10.0/SystemFiles/Libraries/Linux-x86-64/libz.so.1 (0x00007f30fba20000)

我的解决方案是将文件 /usr/local/Wolfram/Mathematica/10.0/SystemFiles/Libraries/Linux-x86-64/libcrypto.so.1.0.0 替换为 /lib/x86_64-linux-gnu/libcrypto.so.1.0

这可能不是最好的方法,但有效。

关于linux - 在 Mathematica 中运行 ssh 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26482422/

相关文章:

Python 通过 ssh 终止进程

wolfram-mathematica - 在 Mathematica 中沿 3D 路径移动 AutoCad DXF 实体

wolfram-mathematica - 如何让mathematica识别do循环中包含 'i'的变量名?

wolfram-mathematica - 在 Mathematica 中绘制数轴

Linux crontab 查找并通过电子邮件发送结果接收 EOF

linux - 尝试在 OpenShift : cannot patch GhostDriver so that it can bind on the server IP address 上运行 PhantomJS

c++ - 创建包含已分配数组的 unique_ptr 的正确方法

github - 如果我迁移到新计算机以使用 Git,是否需要旧的 SSH key ?

php - 如何使用 ssh2 列出其他服务器中目录的文件

linux - grep ping 输出的持续时间