最近公司网络检查,说Linux主机的SSH服务端全部是1.x的版本,不安全,要求升级。头可大了,升级倒是小事,主要是很多Linux主机之间建立了信任关系,
如果升级导致不同的Linux主机登不上可就麻烦了。经过一番摸索,终于找到了可以不断连ssh进行升级的方法。
下载 Openssh的最新版,我下载的是openssh-5.5p1.tar.gz,下载zlib要求版本大于1.2.3,我下载的是zlib-1.2.5.tar.tar
传递到要升级的Linux服务器的/tmp目录下,执行如下命令:
cd /tmp
tar zxvf zlib-1.2.5.tar.tar
cd zlib-1.2.5
./configure
make;make install
然后再安装Openssh
cd /tmp
tar zxvf openssh-5.5p1.tar.gz
cd openssh-5.5p1
./configure --prefix=/usr --syscOnfdir=/etc/ssh
make ;make install
注意:
1、编译安装使用root权限进行操作。
2、由于RedHat 4.x版ssh执行文件默认是放在/usr/bin下,所以指定--prefix=/usr,如果不指定该路径,编译好后的文件将安装到/usr/local/bin下,ssh的配置文件存放到/etc/ssh目录下,与RedHat 4.x的默认路径一致。
3、执行make install语句后会提示 sshd_config、ssh_config已经存在,另外还有一件key文件也存在。key文件可以不管,我们把openssh-5.5p1目录下的sshd_config、ssh_config拷贝到/etc/ssh目录下,替换原有文件
然后再执行service sshd restart
在本机上执行 telnet 127.0.0.1 22,可以看到屏幕左上角已经打印出了一行字 SSH-2.0-OpenSSH_5.5,说明程序已经升级成功。
整个升级过程可以远程操作,ssh连接不会中断,并且由于没有更新服务器的key文件,原有的信任关系依然有效