linux(主要是ubuntu)自己编译安装openssh

技术分享 Story 88浏览 0评论
摘要

linux(主要是ubuntu)自己编译安装openssh

linux(主要是ubuntu)自己编译安装openssh

以下的安装是通过源码编译安装,问题的解决以及依赖包的解决主要是在ubuntu 8.04下用apt-get 解决,以下过程在ubuntu 8.04下通过.其他操作 系统按照实际情况进行.有什么错误欢迎大家批评指正!

需要安装openssl
下载openssl:
http://www.openssl.org/source/
安装过程:

必须先安装libz,在ubuntu下就是#apt-get install libz-dev,否则会在make的时候出现错误,一定要~~~

#./config
#make clean
#make
#make install

查看openssl的版本号,以验正是否安装正确
# openssl version -a
OpenSSL 0.9.7m 23 Feb 2007
built on: Mon Sep 17 16:32:31 HKT 2007
platform: linux-pentium
options: bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_NO_KRB5
-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=pentium -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
OPENSSLDIR: "/usr/local/ssl"

安装openssh
下载源码:http://www.openssh.org/portable.html

推荐先查看INSTALL文件的install部分,可以获得很多有用信息.

安装过程:
1、#./configure
错误1:可能出现c compiler cannot create executables
安装 libc6-dev就可以解决
错误2: error: *** zlib missing - please install first or check config.log ***
解决办法: apt-get install libz-dev
如果安装了openssl,应该不会出现以下错误
错误3:error: *** Can't find recent OpenSSL libcrypto (see config.log for details) ***
执行: apt-cache search openssl | grep dev 查找到要安装的openssl包,你应该会得到如下信息。
-------------------------------------------
libcurl3-dev - Transitional package to libcurl3-openssl-dev
libcurl3-openssl-dev - Development files and documentation for libcurl
libaws-dev - Ada Web Server development files
libssl-ocaml-dev - OCaml bindings for OpenSSL
libssl-dev - SSL development libraries, header files and documentation
-------------------------------------
其中dev前面的就是所要安装的包。你可以把这些包写到一个文件里,让他们自动安装。
vim ssl
增加以下内容:
sudo apt-get install bcurl3-dev;
sudo apt-get install libcurl3-openssl-dev;
sudo apt-get install libaws-dev;
sudo apt-get install libssl-ocaml-dev;
sudo apt-get install libssl-dev;
:wq
然后chmod 775 ssl
./ssl
可能会让你输入root口令。还有中间有几步要你手动输入一下yes.
这样,openssl就安装上了,可以继续安装openssh了。
2、#make
3、make install
错误4:在make install
在最后一步报错:
Privilege separation user sshd does not exist
解决:
在/etc/passwd 中加入:
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
再次make install
编译成功

错误4:解决启动SSHD服务时报错
在开启SSHD服务时报错.
sshd re-exec requires execution with an absolute path
用绝对路径启动,也报错如下:
Could not load host key: /etc/ssh/ssh_host_key
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
Disabling protocol version 1. Could not load host key
Disabling protocol version 2. Could not load host key
sshd: no hostkeys available — exiting
解决过程:
#ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
#ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
#/usr/sbin/sshd

如果用以上办法弄了还是不行,尝试着用绝对路径
#/usr/local/sbin/sshd
这样可能成功。

sshd使用

启动服务
  
#/usr/sbin/sshd
也可能是
#/usr/local/sbin/sshd
这个是openssh的守护进程
  
查看监听端口中是否有22
  
#netstat -tnlp | grep :22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      21018/sshd  
  
尝试从本机通过ssh登录
  
# ssh [email=root@localhost]root@localhost[/email]
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 03:eb:80:fe:07:d9:9d:00:1c:15:37:93:d1:d3:8e:6d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
[email=root@localhost]root@localhost's[/email] password:  
Last login: Wed Apr 11 11:29:04 2007 from localhost.localdomain

转载请注明:成长的对话 » linux(主要是ubuntu)自己编译安装openssh