openssh(Centos)
一、升级说明
1、升级OpenSSH后,原有公钥失效,信任关系需要重新配置
2、升级过程需要停止sshd服务,会导致ssh和sftp无法使用
3、升级需要关闭防火墙服务
4、升级需要关闭selinux服务
5、升级前需要开启telnet,防止升级失败,系统无法登录,对应的防火墙需要开启23端口,安装需要telnet相关依赖包
6、升级过程中需要刷新lib库:ldconfig -v
7、升级顺序:顺序是zlib库-> openssl -> openssh
8、升级需要gcc、make、perl、zlib、zlib-devel、pam、pam-devel等依赖包
二、升级准备
下载下面的安装包上传到系统
openssh.zip
三、升级操作
1、请务必开启telnet,以免升级过程中断导致无法连接系统
2、安装启动telnet服务端,以便升级失败时能通过telnet协议登录系统
3、为避免防火墙和selinux造成影响,在升级过程中,建议将其关闭
4、升级前一定要和研发确认好是否有其它程序使用系统的openssl,比如说apache的mod_ssl模块,如果apache用的是现在的老版本的openssl,那么在你升级openssl之前你应该先将apache进行重新编译,使用新版本的openssl重新编译,替换程序
四、安装
gcc和gcc-c++(根据linux版本选择对应的gcc安装)
cd gcc_gcc-c++
rpm -Uvh --nodeps --force *.rpm
cd ..
gcc --version
zlib
find / -name zlib
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib && make install
ldconfig -v
cd ..
cat /usr/local/zlib/lib/pkgconfig/zlib.pc
perl
perl -v
tar -zxvf perl-5.28.0.tar.gz
cd perl-5.28.0
./Configure -de && make && make install
cd ..
perl -v
openssl
openssl version
//安装时确保只有这三个,有多余的文件mv备份(/etc/pki/ca-trust/extracted/openssl、/usr/bin/openssl、/usr/lib64/openssl)
find / -name openssl
rpm -qa | grep openssl
tar -zxvf openssl-1.1.1l.tar.gz
cd openssl-1.1.1l
./config shared zlib && make && make install
mv /usr/bin/openssl /usr/bin/openssl_bak
mv /usr/include/openssl /usr/include/openssl_bak
ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/include/openssl /usr/include/openssl
ldconfig -v
cd ..
openssl version
ssh -V
//第一次安装后会有以下文件(/etc/pki/ca-trust/extracted/openssl、/usr/bin/openssl、/usr/lib64/openssl、/usr/include/openssl、/usr/local/bin/openssl、/usr/local/include/openssl、/usr/local/share/doc/openssl)
find / -name openssl
openssh
rpm -qa | grep openssh
rpm -e `rpm -qa | grep openssh` --nodeps
rpm -qa | grep openssh
cp -rf /etc/ssh /etc/ssh_bak
tar -zxvf openssh-9.0p1.tar.gz
cd openssh-9.0p1
//修改版本号
vi version.h
#define SSH_VERSION "OpenSSH_welcome"
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --without-openssl-header-check --with-ssl-dir=/usr/local --with-privsep-path=/var/lib/sshd
make && make install
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key
chkconfig --add sshd
chkconfig sshd on
systemctl restart sshd 或 service sshd restart
systemctl status sshd 或 service sshd status
ssh -V