1、操作方法
1)升级openssh可能会导致ssh无法使用,因此需保证服务器的telnet可以使用。以免ssh无法使用时,连不上设备。
在前期做linux主机基线整改时禁用了telnet服务,查看当时整改时的脚本,发现禁用telnet服务是通过修改/etc/services文件,在telnet
23/tcp前加#实现的。删掉前面的#并通过service xinetd
start启动telnet服务后,发现仍然无法telnet服务器。提示如下:
Unencrypted
connection refused. Goodbye.
Connection closed
by foreign host.
搜寻解决方法。有人说ekrb5-telnet是一个需要加密的telnet服务,把这个服务启动上需要加密,将/etc/xinetd.d/ekrb5-telnet里面的disable改成=yes,再重启telnet服务service xinetd
restart就可以了,如果 ekrb5-telnet里面的disable=yes出现修改后又变回no的情况,执行
chkconfig ekrb5-telnet off可将其禁用。
尝试后发现可以telnet了。
2)在openssl的官网http://www.openssh.com/portable.html上下载最新openssl 1.0.1l版本的安装包,在openssh的官网http://www.openssh.com/portable.html上下载最新openssh 6.7p1的安装包。并通过ftp传到服务器上。
3)安装openssl
tar -zxvf
openssl-1.0.1l.tar.gz 解压openssl的安装包
cd
openssl-1.0.1l 进入解压的目录
./config
--prefix=/usr/local --shared
make
make
test
make
install
安装完毕后通过openssl version -a
查看openssl版本安装是否正确
4)安装openssh
tar -zxvf
openssh-6.7p1.tar.gz 解压openssh的安装包
cd
openssh-6.7p1 进入解压的目录
./config
--prefix=/usr/local --with-pam --with-zlib
--with-md5-passwords
make
make
install
安装完毕后service sshd restart 重启ssh服务
通过ssh -V查看openssh版本安装是否正确
2、注意事项
1)安装openssl时./config
--prefix=/usr/local --shared这一条命令一定要加上--shared选项,否则openssh编译的时候会找不到新安装的openssl的library,
会报错: openssl的 header和library版本不匹配。
2)安装openssl时make
test这一步是进行 SSL 加密协议的完整测试,如果出现错误就要一定先找出原因,否则一味继续可能导致 SSH 不能使用。
3)安装openssh,./config时,如报下面错误:configure: error: PAM headers not
found
运行rpm -qa
| grep pam
pam_ccreds-3-5
pam-0.99.6.2-4.el5
pam_pkcs11-0.5.3-23
pam_passwdqc-1.0.2-1.2.2
pam_smb-1.1.7-7.2.1
pam_krb5-2.2.14-10
发现有pam-0.99.6.2-4.el5,但没有对应的pam-devel-0.99.6.2-4.el5。
在网上找到pam-devel-0.99.6.2-4.el5.i386.rpm,我是在http://rpm.pbone.net/这个网站上搜索到rpm包,如果要找其他的rpm包,也可以在这个网站上找。
运行rpm -ivh
pam-devel-0.99.6.2-4.el5.i386.rpm进行安装。
安装完毕后再进行openssh的./config,正常。
4)安装完openssh,测试能正常ssh到服务器后,记得将telnet服务关闭,修改/etc/services文件,在telnet 23/tcp前加上#即可