首先查看当前Openssh版本
ssh -V
输出:
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
一、下载openssh
- 直接在windows上下载openssh再上传到目标主机上
下载地址:http://www.openssh.com/releasenotes.html
二、解压
tar -xvzf openssh-9.1.tar.gz
三、删除原有ssh相关文件
卸载Openssh服务
注意:卸载完成后ssh服务会停掉,此时已经连接好的客户端不能断开,在ssh没安装好之前也不要重启ssh服务和服务器,否则断开之后将无法进行远程连接
yum remove openssh –y
rm -rf /etc/ssh/*
四、编译安装ssh
#进入解压好的ssh目录下后编译安装
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl --with-zlib --with-md5-passwords --with-pam && make && make install
期间报错1:“configure:error:**zlib.h missing please install first or check config.log**"
原因是缺少zlib和zlib-devel包,zlib-devel依赖于zlib ,所以需要先安装zlib
zlib-devel离线包下载:下载地址
zlib离线包下载:下载地址
yum -y install *.rpm
报错2:”configure: error: *** working libcrypto not found, check config.log“
原因是Openssl问题,可以装一个新版本来解决
下载地址:https://www.openssl.org/source/openssl-1.1.1p.tar.gz
下载后上传至主机
# 解压
tar -xvzf openssl-1.1.1p.tar.gz
# 进入文件夹
cd openssl-1.1.1p/
# 安装
./config --prefix=/usr/local/openssl && make && make install
# 备份原openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
# 建立软连接
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
# 写入配置
echo "/usr/local/openssl/lib64" >> /etc/ld.so.conf
ldconfig -v
安装完成后查看版本
openssl version
报错:"openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory"
原因是对应的库文件路径没有找到
# 建立软连接
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
# 再次查看版本
openssl version
cd openssh-9.1p1
#继续编译安装
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/openssl --with-zlib --with-md5-passwords --with-pam && make && make install
报错:"openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory"
需要手动安装一下PAM
yum -y install pam-devel
出现下图即为安装成功
若安装完成后执行 ssh -V
发现还是原来的版本, /usr/local/bin/ssh -V
是新版本的话
# 备份原ssh文件
mv /usr/bin/ssh /usr/bin/ssh.bak
# 创建软连接
ln -sf /usr/local/bin/ssh /usr/bin/ssh
在openssh-9.1p1目录下执行如下命令:
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
systemctl restart sshd
五、无法远程问题解决
升级成功后可能无法远程连接,包括不限于一直提示密码错误
vim /etc/ssh/sshd_config
#找到"#PubkeyAuthentication yes"这一项,将其放开
#找到"#PermitRootLogin prohibit-password"这一项,在其下面增加
PermitRootLogin yes
#重启服务
systemctl restart sshd
Comments | NOTHING