这篇博文其实和前两篇是有关联的,只是中间稍微有点时间间隔,今天把我对openssh升级情况做一个简单的回顾,并将具体细节记录如下。
通过xshell远程连接服务器,用rz命令,上传本地三个安装文件至服务器:
文件放在了/usr/zlf/目录下
接下来就是看看目前ssh的版本,ssh -V,查看之后,做个记录
因为接下来的安装会用到gcc,所以,下一步要查下服务器是否安装了gcc,直接在光标处输入gcc,根据反馈信息即可判定。如果装了,那就皆大欢喜,直接略过;如果没装,那就要安装了。
————————————————————————————————
安装gcc:
安装之前,我们要知道什么是GCC?
GCC是一个用于linux系统下编程的编译器。是一个用于编程开发的自由编译器。最初,GCC只是一个C语言编译器,它是GNU C Compiler 的英文缩写。随着众多自由开发者的加入和GCC自身的发展,如今的GCC已经是一个包含众多语言的编译器了。其中包括 C,C++,Ada,Object C和Java等。所以,GCC也由原来的GNU C Compiler变为GNU Compiler Collection。也就是 GNU编译器家族的意思。当然,如今的GCC借助于它的特性,具有了交叉编译器的功能,即在一个平台下编译另一个平台的代码。
怎么安装?
有人说联网装,我的联网装不上,估计是因为rhel版本造成的问题,因为rhel是收费的
挂载系统镜像用于安装gcc.
cd到文件中找到对应的安装包,一般在:挂载点 /packages/下
rpm -ivh glibc-common-2.12-1.132.el6.x86_64.rpm
rpm -ivh kernel-headers-2.6.32-431.el6.x86_64.rpm
rpm -ivh libgcc-4.4.7-4.el6.x86_64.rpm
rpm -ivh glibc-2.12-1.132.el6.x86_64.rpm
rpm -ivh libgomp-4.4.7-4.el6.x86_64.rpm
rpm -ivh nscd-2.12-1.132.el6.x86_64.rpm
rpm -ivh glibc-headers-2.12-1.132.el6.x86_64.rpm
rpm -ivh glibc-devel-2.12-1.132.el6.x86_64.rpm
rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm
rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm
rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm
注:以上是安装gcc,请按顺序安装。另外,rpm命令功能类似于Windows里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是Red Hat Package Manager(简称RPM)。此工具包最先是由Red Hat公司推出的,后来被其他Linux开发商所借用。由于它为Linux使用者省去了很多时间,所以被广泛应用于在Linux下安装、删除软件。ivh都是rpm命令的参数,可以从rpm --help里找到说明。 意思是显示安装进度和详细信息
rpm -ivh libstdc++-4.4.5-6.el6.x86_64.rpm
# rpm -ivh libstdc++-devel-4.4.5-6.el6.x86_64.rpm
# rpm -ivh gcc-c++-4.4.5-6.el6.x86_64.rpm
注:以上是安装gcc-c++(在此可以不安装)
————————————————————————————————
安装完gcc之后,我们就要开始安装openssh升级文件了,但是在安装之前,是不是要先卸载了之前的版本呢?
——————————————————————————————————
卸载:
停止sshd服务
/sbin/service sshd stop
卸载系统中原有的openssh
#rpm -qa|grep openssh
#rpm -e openssh --nodeps
#rpm -e openssh-server --nodeps
#rpm -e openssh-clients --nodeps
#rpm -e openssh-askpass
#rpm -qa|grep openssh
查看后已经卸载完成
——————————————————————————————————
安装:
——————————————————————————————————
1、解压安装包zlib:
tar -xvf zlib-1.2.8 tar.gz
cd解压后的zlib-1.2.8下
配置:
./configure
编译安装:
make&make install
2、解压并安装openssl
tar -zxvf openssl-1.0.2h.tar.gz
cd openssl-1.0.2h
配置:
./config --prefix=/usr/local/ssl shared zlib-dynamic enable-camellia
编译:
make depend
安装:
make && make install
额外配置必须(为OpenSSH升级做准备)
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak (文件可能不存在,可忽略)
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl (
ln用于建立硬连接 ln -s 用于建立符号连接(又称软连接))
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
ldconfig -v
升级成功
openssl version -a
3、解压并安装openssh
tar -zxvf openssh-7.3p1.tar.gz
cd openssh-7.3p1
配置:
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords --with-ssl-dir=/usr/local/ssl
编译安装:
make && make install
——————————————————————————————————
重启sshd服务:
service sshd restart
提示sshd服务不存在,原因是由于安装完成后,/etc/init.d/内没有sshd文件,需要从openssh-7.3p1/contrib/sshd.init复制到/etc/init.d/下,并命名为sshd
cp openssh-7.3p1/contrib/redhat/sshd.init etc/init.d/sshd 复制完成之后
用ssh -V(此处V为大写)可查看安装的openssh的版本信息
默认ssh安装之后只能普通用户连接使用,如果需要root权限直接连进来,需要用到下面的命令:
echo " PermitRootLogin yes " >> /etc/ssh/sshd_config && echo " PasswordAuthentication yes " >> /etc/ssh/sshd_config
虽然完成了安装,但是在重启服务器之后,使用ssh仍然存在远程连不上的情况,后来我们就在/etc/selinux/config中修改了一些参数(将config文件中的SELINUX后设置为disable):
vi /etc/selinux/config
---SELINUX=disabled
此时尝试远程连接后成功。