在Linux中进行OpenSSH升级(编译安装在openssh目录)
由于OpenSSH有严重漏洞,因此需要升级OpenSSH到最新版本。
注意:在OpenSSH升级过程中千万不要断开服务器连接,不然的话,会出现断开后连接不了服务器的情况。
第一步,查看当前的OpenSSH服务版本。
命令:ssh -V
第二步,下载OpenSSH。
登录网址:OpenSSH: Release Notes下载最新版本OpenSSH安装包,即openssh-9.7p1.tar.gz,然后使用WinSCP将安装包上传到/opt文件夹中。
注意:卸载OpenSSH的rpm安装包之前一定要先把下载的OpenSSH安装包上传到服务器中。
第三步,安装、启动telnet,关闭安全文件,防止因卸载OpenSSH而导致无法登录主机。
# 安装、启动telnet
命令:yum -y install telnet
yum -y install telnet-server
systemctl enable telnet.socket
systemctl start telnet.socket
# 关闭安全文件
命令:mv /etc/security /etc/security.bak
第四步,安装升级OpenSSH需要的依赖包。
命令:yum -y install gcc keyutils-libs rpm-build krb5-devel libcom_err-devel libselinux-devel pam-* openssl-devel pkgconfig vsftpd zlib*
第五步,备份原有的SSH服务版本。
命令:mv /etc/ssh /etc/ssh.bak
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/sbin/sshd /usr/sbin/sshd.bak
第六步,卸载OpenSSH的rpm安装包。
命令:rpm -qa | grep openssh
# 普通删除模式
命令:rpm -e `rpm -qa | grep openssh`
# 如果使用普通删除模式命令删除时,提示有依赖的其它文件,则用强力删除模式命令对其进行强力删除
命令:rpm -e `rpm -qa | grep openssh` --nodeps
第七步,编译安装OpenSSH。
# 解压OpenSSH
命令:cd /opt
tar zxvf openssh-9.7p1.tar.gz
# 编译安装OpenSSH
命令:cd /opt/openssh-9.7p1/
./configure --prefix=/usr/local/openssh \
--sysconfdir=/etc/ssh \
--with-ssl-dir=/usr/local/openssl \
--with-zlib=/usr/local/zlib
make && make install
第八步,查看OpenSSH命令的执行路径。
命令:find / -name sshd
第九步,复制源码解压路径的开机启动脚本到/etc/init.d文件夹下。
命令:cp /opt/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd
第十步,修改开机启动脚本/etc/init.d/sshd。
编辑/etc/init.d/sshd,对开机启动脚本做如下修改:
“SSHD=/usr/sbin/sshd”修改为“SSHD=/usr/local/openssh/sbin/sshd”;
“/usr/bin/ssh-keygen -A”修改为“/usr/local/openssh/bin/ssh-keygen -A”。
也可以使用命令来进行编辑开机启动脚本。
命令:sed -i '25cSSHD=/usr/local/openssh/sbin/sshd' /etc/init.d/sshd
sed -i '41c/usr/local/openssh/bin/ssh-keygen -A' /etc/init.d/sshd
第十一步,修改配置文件sshd_config,允许root用户通过ssh远程登录。
命令:sed -i "/#PermitRootLogin prohibit-password/c\PermitRootLogin yes" /etc/ssh/sshd_config
第十二步,复制源码解压路径的ssh-copy-id文件到文件夹/usr/local/openssh/bin/下,并增加ssh-copy-id文件的执行权限。
命令:cp /opt/openssh-9.7p1/contrib/ssh-copy-id /usr/local/openssh/bin/
chmod +x /opt/openssh-9.7p1/contrib/ssh-copy-id
第十三步,启动sshd服务并验证更新是否成功。
命令:systemctl daemon-reload
service sshd start
/usr/local/openssh/bin/ssh -V
若结果显示“OpenSSH_9.7p1”,则说明OpenSSH升级成功。
第十四步,开启安全文件。
命令:mv /etc/security.bak /etc/security
原文地址:https://blog.csdn.net/weixin_43268590/article/details/142655711
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!