【问题标题】:Printing Wrong version Number when i run ssh -V运行 ssh -V 时打印错误的版本号
【发布时间】:2014-07-11 02:12:14
【问题描述】:

我正在将QNX 平台的opensslopenssh 版本从openssl 1.0.0e 升级到1.0.1gopenssh-5.6p1openssh-6.6p1
因此,我使用我的 linux 机器进行交叉编译以生成 QNX 的二进制文件。
在我运行./ssh -V 时完成下面提到的所有步骤后,我得到了这个输出

OpenSSH_6.6p1, OpenSSL 0.9.8g 19 Oct 2007

但我使用openssl 1.0.1g 生成ssh 二进制文件。 谁能告诉我我从哪里弄错了版本?

步骤:
下载openssl-1.0.1g.tar.gz & openssh-6.6p1.tar.gz 然后untar 它。 2. cd openssl-1.0.1g & 运行这个config 命令

CC=qcc CXX=qcc AR=nto${I_CPU}-ar LD=qcc RANLIB=nto${I_CPU}-ranlib CFLAGS+="-Vgcc_nto${I_CPU} -fPIC -DPIC" LDFLAGS+="-Vgcc_nto${I_CPU} -shared" ./Configure QNX6-i386 -shared --prefix=/home/vamsi/build_ppc --openssldir=/home/vamsi/build_ppc/openssl_dir
  1. 清理干净
  2. 制作
  3. 进行安装
  4. cd openssh-6.6p1 & 运行这个config 命令

    CC=qcc CFLAGS="-Vgcc_nto${I_CPUX} -L/home/vamsi/build_ppc/lib" AR=nto${I_CPUX}-ar LD=qcc LDFLAGS="-Vgcc_nto${I_CPUX} -L/ home/vamsi/build_ppc/lib" CXX=qcc CPPFLAGS+="-DMISSING_HOWMANY -DMISSING_NFDBITS -DMISSING_NFDMASK" ./configure --disable-lastlog --host=ppcbe --with-ssl-dir=/home/vamsi/build_ppc/openssl_dir --prefix=/home/vamsi/build_ppc --disable-etc-default-login

  5. 清理干净

  6. 制作

在这些步骤之后,我将生成的ssh 二进制文件复制到目标机器并尝试运行./ssh -V

当我将openssl Binary 复制到目标QNX 机器并尝试执行此命令时

./openssl

出现这个错误

./openssl[1]: syntax error: '(' unexpected

注意:我没有在目标机器上安装 ssh,但我只想要新版本的 ssh 二进制文件,所以我运行的是 ./ssh -V 而不是 ssh -V

我能够使用这个ssh(生成的二进制文件)成功连接到任何地址。 在制作这个二进制文件时,我收到了这个警告

skipping incompatible /home/vamsi/build_ppc/lib/libcrypto.a when searching for -lcrypto

这个警告与我面临的问题有什么关系吗??

我尝试使用 openssl 1.0.0l 版,但 ssh -v 的输出仍然显示为

OpenSSH_6.6p1,OpenSSL 0.9.8g 2007 年 10 月 19 日

【问题讨论】:

  • 我已经删除了ssl 标签,因为您说的不是 SSL,而是 SSH(不依赖 SSL)。

标签: ssh openssl openssh qnx


【解决方案1】:

在这些步骤之后,我将生成的 ssh 二进制文件复制到目标中 机器并尝试运行 ./ssh -V

当我将 openssl 二进制文件复制到目标 QNX 机器时

这和comments you've posted on your other question 关于ldd 的输出:“它在创建二进制文件时采用以前的库而不是新生成的库。”似乎表明您只复制了这些两个可执行文件,但不是你编译的库。

使用ssh 不需要openssl 命令,但需要OpenSSL 库(libssl.something.so)。

如果您想在本地目录中测试它而不是覆盖系统的库(我建议您这样做,因为您似乎不太确定这一切是如何工作的),请考虑使用 LD_LIBRARY_PATH 指向路径您安装这些库的位置。

一般来说,阅读LD_LIBRARY_PATH 是个好主意。在 Linux 上,我也会考虑使用 ldconfig,但 I'm not sure if there's an equivalent on QNX

【讨论】:

  • 感谢您的回复。一件事是 QNX 有 2 个平台,即 x86 和 ppc(至少我们使用..)。在 x86 中,ssh -V 的输出是正确的(OpenSSH_6.6p1,OpenSSL 1.0.1g)。即使我还没有将库复制到 x86 平台。在这种情况下,它应该在 x86 中显示错误的版本,对吗??
猜你喜欢
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-02
  • 1970-01-01
  • 1970-01-01
  • 2019-03-16
  • 2019-10-29
相关资源
最近更新 更多