RedHat Linux主机升级openssh步骤

一、升级前准备

1.安装GCC环境 yum install gcc
2.下载升级所需源码包如:zlib、openssl、openssh(本次升级中我使用的是:zlib-1.2.5.tar.bz2、openssl-1.0.1.tar.gz、openssh-5.9p1.tar.gz)
3.开启Telnet远程管理服务,避免SSH操作中途意外中断。
3.1 修改/etc/xinetd.d/krb5-telnet文件:
#vi /etc/xinetd.d/krb5-telnet
krb5-telnet文件内容如下:
# default: off
# description: The kerberized telnet server accepts normal telnet sessions,
# but can also use Kerberos 5 authentication.
service telnet
{
      flags           = REUSE
      socket_type     = stream       
      wait            = no
      user            = root
    server          = /usr/kerberos/sbin/telnetd
      log_on_failure  += USERID
      disable         = no        //将yes改为no,即启用telnet服务
        }
  3.2重启xinetd服务,启动Telnet:
# /etc/init.d/xinetd restart
[root@web2 ~]# /etc/init.d/xinetd restart
停止xinetd:[确定]
启动xinetd:[确定]
# netstat -tnlp | grep :23
[root@web2 ~]# netstat -tnlp | grep :23
tcp        0      0 0.0.0.0:23                  0.0.0.0:*                   LISTEN       1433/xinetd
通过telnet连接到主机,进行操作。
  3.3 停止SSHD服务:
#/sbin/service sshd stop
[root@web2 ~]# /sbin/service sshd stop
停止sshd:[确定]
cp /etc/init.d/sshd  /root/ 备份复制启动脚本
[root@web2 ~]# cp /etc/init.d/sshd  /root/
 
二、安装升级Openssh
 
1.在安装之前需要卸载系统里原Openssh相关包:
rpm –qa|grepopenssh     //查询系统原安装的openssh包,全部卸载。
#rpm -e openssh --nodeps
#rpm -e openssh-server --nodeps
#rpm -e openssh-clients --nodeps
#rpm -e openssh-askpass
2.解压安装zlib包:
tar -jxvfzlib-1.2.5.tar.bz2    //首先安装zlib库,否则会报zlib.c错误无法进行
cd zlib-1.2.5
./configure
make;make install
3.解压安装openssl包:
#tar -zxvfopenssl-1.0.1.tar.gz
#cd openssl-1.0.1
#./config shared zlib
#make
#make test
#make install
mv /usr/bin/openssl /usr/bin/openssl.OFF
mv /usr/include/openssl /usr/include/openssl.OFF
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
//移走原先系统自带的openssl,将自己编译产生的新文件进行链接。
 
4.配置库文件搜索路径
# echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
# /sbin/ldconfig -v
# openssl version -a
OpenSSL 1.0.1 14 Mar 2012
built on: Fri Mar 16 17:14:50 CST 2012
platform: linux-x86_64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall - DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 - DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM - DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/local/ssl"
5.解压安装openssh包:
先将将/etc/ssh的文件夹备份:
#mv /etc/ssh /etc/ssh_bak
# tar-zxvfopenssh-5.9p1.tar.gz
./configure --prefix=/usr --sysconfdir=/etc/ssh  --with-zlib --with-ssl-dir=/usr/local/ssl  --with-md5-passwords --mandir=/usr/share/man
#make
#make install
 
三、启动并验证
 
1 .调试启动,如果以下显示均正常,就可以正常启动sshd了
debug1: sshd version OpenSSH_5.9p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: private host key: #1 type 2 DSA
debug1: read PEM private key done: type ECDSA
debug1: private host key: #2 type 3 ECDSA
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-d'
Set /proc/self/oom_adj from 0 to -17
debug1: Bind to port 22 on ::.
Bind to port 22 on :: failed: Address already in use.
debug1: Bind to port 22 on 0.0.0.0.
Bind to port 22 on 0.0.0.0 failed: Address already in use.
Cannot bind any address.
2 .启动服务:
2.1 生成ssh服务管理脚本,进入ssh解压目录:
#cd contrib/redhat
#cp sshd.init /etc/init.d/sshd
#chmod +x /etc/init.d/sshd
#chkconfig --add sshd
 
2.2 启动ssh服务:
#/usr/sbin/sshd
或者
#service sshd start
最后,启动 SSH 服务使修改生效:
# /etc/init.d/sshd restart
重启后确认一下当前的OpenSSH和OpenSSL是否正确:
# ssh -v
如果看到了新的版本号就没问题啦!
 
3.查看服务端口中是否有22
#netstat -tnlp | grep :22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 21018/sshd
以ssh方式重新连接系统。
4.记得关闭telnet,将开启部分标红字段改回“disable      = yes”
#/etc/init.d/xinetd stop
# netstat -tnlp | grep :23
#
至此,openssh升级结束。(建议编译完成后对gcc工具进行卸载)

 

你可能感兴趣的:(redhat,步骤,linux主机,升级openssh)