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