CentOS 6及以下版本(CentOS 5)升级OpenSSH、OpenSSL

  • Post author:
  • Post category:其他




CentOS 6及以下版本升级OpenSSH、OpenSSL

目前最新的OpenSSH是openssh9.1p1,至于为什么不升级到最新版本,是因为openssh8.9版本以上不支持key转发了。详情可以看一看这个文章:

https://editor.csdn.net/md/?articleId=128041801

CentOS 6一般不需要更新OpenSSl就可以成功更新Openssh,大家可以根据自己的需求,也可以不更新OpenSSL直接安装OpenSSH。



安装Perl、OpenSSL


1. 安装编译需要的环境

yum -y install gcc gcc-c++ glibc make zlib zlib-devel pam-devel openssl-devel rpm-build


2. 下载安装Perl

wget https://www.cpan.org/src/5.0/perl-5.36.0.tar.gz
tar zxf perl-5.36.0.tar.gz 
cd perl-5.36.0 
./Configure -des -Dprefix=/usr/local/perl 
make && echo $? 
make install 
mv /usr/bin/perl /usr/bin/perl.bak 
ln -s /usr/local/perl/bin/perl /usr/bin/perl 
perl -v 


3. 下载、解压、编译安装OpenSSL

wget https://www.openssl.org/source/openssl-3.0.7.tar.gz
tar zxf openssl-3.0.7.tar.gz
cd openssl-3.0.7
./config --prefix=/usr/local/ssl shared zlib
make && make install 

mv /usr/bin/openssl /usr/bin/openssl.bak 
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl 
echo "/usr/local/ssl/lib64">> //etc/ld.so.conf.d/ssl.conf
/sbin/ldconfig 
openssl version 



安装OpenSSH**********注意,一定要有备用的连接方式,安装过程很可能ssh掉线,防止无法远程连接到服务器。telnet是个很好的选择。我的是虚拟机,有VNC,所以没有配置telnet***********


1. 安装编译需要的环境

yum -y install gcc gcc-c++ glibc make zlib zlib-devel pam-devel openssl-devel rpm-build


2. 备份旧版本的配置文件、卸载旧版本openssh,我这旧版本是之前rpm安装的,源码安装的可以自行寻找安装位置。

mv -f /etc/ssh /etc/ssh.bak
for i in `rpm -qa |grep openssh-`; do rpm -e --nodeps $i; done


3. 下载并安装

wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz
tar zxvf openssh-8.8p1.tar.gz



如果安装过程中OpenSSL报错就先更新OpenSSL再来安装SSH,如果编译安装了OpenSSL就要更改编译的参数,需要添加 –without-openssl-header-check –with-ssl-dir=/usr/local/ssl 这个/usr/loca/ssl是你安装SSL的位置,你安装到了那就写哪


先进入到下载的ssh目录中

cd openssh-8.8p1


#根据情况选一个运行

#不指定SSL位置

./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords


#指定SSL位置

./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers --without-openssl-header-check --with-ssl-dir=/usr/local/ssl


编译安装

make
echo $?
make install


4. 创建软连接

ln -sf /usr/local/openssh/bin/* /usr/bin
ln -sf /usr/local/openssh/sbin/sshd /usr/sbin


5. 更改sshd配置文件

我这里是要求key登陆的,大家可以根据自己的需求修改下面的参数。


PermitRootLogin yes #是否允许root登陆

PasswordAuthentication no #是否允许密码登陆

PubkeyAuthentication yes #是否允许密钥登陆

X11Forwarding yes #是否允许X11转发,用不到的可以不开这个,默认是关闭状态

echo -e "PermitRootLogin yes\nPasswordAuthentication no\nPubkeyAuthentication yes\nX11Forwarding yes">>/etc/ssh/sshd_config


6. 新建启动文件

cp contrib/redhat/sshd.init /etc/init.d/sshd


7. 重启服务并开机自启

service sshd restart
chkconfig –add sshd
chkconfig on sshd



版权声明:本文为z1119400608原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。