如何构建OpenSSH而不依赖OpenSSL?

时间:2016-10-27 07:21:12

标签: security openssl openssh

我正在尝试在没有OpenSSL的情况下构建OpenSSH 7.3。

我跑了$ ./configure --without-openssl

然后运行$ make OPENSSL=no$ make会出现以下错误:

In file included from ../entropy.h:30:0,
                 from ../includes.h:174,
                 from arc4random.c:27:
../buffer.h:50:29: fatal error: openssl/objects.h: No such file or directory
compilation terminated.
make[1]: *** [arc4random.o] Error 1
make[1]: Leaving directory /local/store/openssh/openssh-7.3p1/openbsd-compat'
make: *** [openbsd-compat/libopenbsd-compat.a] Error 2

这些包含未正确包裹#ifdef WITH_OPENSSL,因此仍然可以访问。我做错了什么?

如何在没有OpenSSL依赖项的情况下配置和构建OpenSSH 7.3?

从版本6.8开始,OpenSSH似乎可以在没有OpenSSL的情况下构建。从6.8发行说明:

  
      
  • 在配置时支持--without-openssl

         

    禁用并删除对OpenSSL的依赖。很多功能,   包括SSH协议1不支持和加密的设置   选项受到很大限制。这只适用于系统   使用native arc4random或/ dev / urandom。

  •   

我也在OpenBSD CVS上发现了这条消息:

  

CVSROOT:/ cvs

     

模块名称:src

     

变更:markus@cvs.openbsd.org 2014/04/29 12:01:49

     

修改过的文件:

     

usr.bin / ssh:Makefile.inc auth.c authfd.c authfile.c                        bufaux.c cipher.c cipher.h hostfile.c kex.c                        key.c mac.c monitor.c monitor_wrap.c                        myproposal.h packet.c roaming_client.c                        ssh-agent.c ssh-keygen.c ssh-keyscan.c                        ssh-keysign.c ssh-pkcs11.h ssh.c sshconnect.c                        sshconnect2.c sshd.c       usr.bin / ssh / lib:Makefile       usr.bin / ssh / ssh:Makefile       usr.bin / ssh / sshd:Makefile

     

日志消息:   对OpenSSL进行编译可选(make OPENSSL = no);   将算法减少到curve25519,aes-ctr,chacha,ed25519;   让我们探索更多选择;和,好的djm

1 个答案:

答案 0 :(得分:1)

我在没有7.7p1的情况下使用以下方法构建了 OpenSSH openssl

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-privsep-path=/var/empty --libexecdir=/usr/lib/openssh --without-openssl

我还使用了Linux From Scratch中的patch