Linux——OpenSSH如何升级到最新版本
前言
步骤
升级方法一
具体的内容请查看脚本内容
#!/bin/bash ## 查看现有的ssh的版本并升级到最新版本 cd /opt ssh -V openssl version yum update openssh -y ## 安装启动并配置telnet服务 | 防止ssh升级失败无法访问服务器 yum install -y telnet-server* telnet xinetd systemctl enable xinetd.service systemctl enable telnet.socket systemctl start telnet.socket systemctl start xinetd.service echo 'pts/0' >>/etc/securetty echo 'pts/1' >>/etc/securetty echo 'pts/2' >>/etc/securetty ## 升级ssh yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel yum install -y pam* zlib* wget -c https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz wget -c https://ftp.openssl.org/source/openssl-1.0.2r.tar.gz tar xfz openssh-8.1p1.tar.gz tar xfz openssl-1.0.2r.tar.gz mv /usr/bin/openssl /usr/bin/openssl_bak mv /usr/include/openssl /usr/include/openssl_bak cd /opt/openssl-1.0.2r ./config shared && make && make install echo $? ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl ln -s /usr/local/ssl/include/openssl /usr/include/openssl echo "/usr/local/ssl/lib" >> /etc/ld.so.conf /sbin/ldconfig openssl version cd /opt/openssh-8.1p1 chown -R root.root /opt/openssh-8.1p1 cp -r /etc/ssh /tmp/ rm -rf /etc/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 echo $? cat > /etc/ssh/sshd_config <<EOF PermitRootLogin yes AuthorizedKeysFile .ssh/authorized_keys UseDNS no Subsystem sftp /usr/libexec/sftp-server EOF grep "^PermitRootLogin" /etc/ssh/sshd_config cat /tmp/ssh/sshd_config |grep -v '#' |grep -v '^$' 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 systemctl enable sshd mv /usr/lib/systemd/system/sshd.service /opt/ mv /usr/lib/systemd/system/sshd.socket /opt/ chkconfig sshd on service sshd restart openssl version ssh -V
关闭telnet服务
自测后如果没有问题的话,自行把telnet服务关闭
systemctl disable xinetd systemctl disable telnet.socket systemctl stop xinetd.service systemctl stop telnet.socket
效果如下
升级方法二
升级包
链接:https://share.weiyun.com/BhDw35zi
- 确认gcc等工具已经安装好了
- 为了安全直接屏蔽了root账户,确认创建好非root账户登录ssh
##SSH升级 mv /usr/bin/openssl /usr/bin/openssl.bak tar -zxvf openssl-1.1.1g.tar.gz cd openssl-1.1.1g ./config shared && make && make install \cp -rvf include/openssl /usr/include/ ln -s /usr/local/bin/openssl /usr/bin/openssl ln -snf /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so ln -snf /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1 ln -snf /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so ln -snf /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1 ldconfig openssl version # 备份 cp /usr/bin/ssh /usr/bin/ssh.bak cp /usr/sbin/sshd /usr/sbin/sshd.bak mv /etc/ssh /etc/ssh.bak tar -zxvf openssh-8.3p1.tar.gz cd openssh-8.3p1 ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl --with-zlib --with-md5-passwords make && make install # 修改启动文件和pam cp ./contrib/redhat/sshd.init /etc/init.d/sshd cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service_bak systemctl daemon-reload systemctl restart sshd systemctl status sshd
学无止境,谦卑而行.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 一个费力不讨好的项目,让我损失了近一半的绩效!
2019-06-10 AndroidStudio——Android SDK
2019-06-10 Navicat——如何导出所有的查询数据