centos7 openssh 7.9.1 升级
2024-09-01 17:35:35
由于项目构建时间比较长,近期安全检查发现openssh有漏洞。所以要升级openssh到7.9p1版本。由于ssh用于远程连接,所以要谨慎操作。
1、 依赖安装
OpenSSL版本:目前OpenSSH7.9不支持OpenSSH1.1.x以上。否则编译的时候会报错。
Zlib1.1.4或1.2.1.2或更高版本;
gcc:因为编译需要gcc;
openssl-devel:编译时需要
2、下载openssh 7.9
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz
3、卸载旧的opehssh
rpm -qa |grep openssh
rpm -e --nodeps openssh-clients-.4p1-.el7.x86_64
rpm -e --nodeps openssh-.4p1-.el7.x86_64
rpm -e --nodeps openssh-server-.4p1-.el7.x86_64
rpm -qa |grep openssh
如果之前就是源码安装的,找到之前的安装包,在里面执行
make uninstall
4、解压并安装
4.1)解压
tar xf openssh-7.9p1.tar.gz
cd openssh-7.9p1 4.2)编译
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd
make
注意!!!
注意!!!
注意!!!
① configure: error: no acceptable C compiler found in $PATH
问题解决
yum install gcc
② configure: error: * zlib.h missing - please install first or check config.log *
问题解决
安装相关依赖包
yum install openssl openssl-devel -y
4.3)修改文件权限否则会安装报错
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key
4.4)安装 make install
5、配置
install -v -m755 contrib/ssh-copy-id /usr/bin
install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1
install -v -m755 -d /usr/share/doc/openssh-7.9p1
install -v -m644 INSTALL LICENCE OVERVIEW README*
install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.9p1
命令解释:
--sysconfdir=/etc/ssh:这可以防止安装配置文件 /usr/etc。
--with-md5-passwords:这使得可以使用MD5密码。
--with-pam:此参数在构建中启用 Linux-PAM支持。
--with-xauth=/usr/bin/xauth:为X身份验证设置xauth二进制文件的默认位置。如果将xauth安装到其他路径,请更改位置。这也可以sshd_config使用XAuthLocation关键字进行控制。如果已安装Xorg,则可以省略此开关。
--with-kerberos5=/usr:此选项用于在构建中包含Kerberos 5支持。
--with-libedit:此选项为sftp启用行编辑和历史记录功能。
6、根据自身需求改写配置文件。因为配置文件为初始配置文件。所以和之前的不一样。可以使用备份配置文件覆盖。
注意:
默认是22端口,但是不能root直接登录。如果想直接使用root登录执行以下命令
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
7、配置开机启动并重启
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
chkconfig --list sshd
systemctl restart sshd
8、重启服务器
reboot
脚本:
该脚本在确认好本机环境的情况后执行 !!!
cat openssh_7..1_update.sh
#!/bin/bash
rpm -qa |grep zlib
rpm -qa |grep openssl
rpm -qa |grep openssh
gcc --version
read -p "是否继续[y/n]" Check if [ $Check == 'y' ]
then
for rpmpkgs in `rpm -qa |grep openssh`; do rpm -e --nodeps ${rpmpkgs} ;done
sleep
rpm -qa |grep openssh mkdir /tmp/opensshupdate -p
cd /tmp/opensshupdate && wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd
make sleep chmod /etc/ssh/ssh_host_rsa_key
chmod /etc/ssh/ssh_host_ecdsa_key
chmod /etc/ssh/ssh_host_ed25519_key make install
sleep install -v -m755 contrib/ssh-copy-id /usr/bin
install -v -m644 contrib/ssh-copy-id. /usr/share/man/man1
install -v -m755 -d /usr/share/doc/openssh-.9p1
install -v -m644 INSTALL LICENCE OVERVIEW README*
install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-.9p1
sleep echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
sleep cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
chkconfig --list sshd
systemctl restart sshd
else
break
fi
最新文章
- jQuery控制CSS样式
- flash bulider 生成app无法安装在xcode模拟器上
- Football
- SQLiteLog (1) no such Column:
- C语言之变量与常量的介绍
- Zookeeper单机版安装(CentOS 7环境下)
- JavaScript中的alert、confirm、prompt
- jq实现全选或者全不选
- 垃圾回收机制GC知识再总结兼谈如何用好GC(转)
- 再回首UML之下篇
- MacBook IDEA激活码(附视频)
- javaFX的控制台实现
- 如何将字符串格式的对象转换成真正的js对象?
- mongodb ---->; 从入门到。。。
- Ubuntu 12.04 Desktop下vncserver配置:Unity以及Xfce4桌面环境
- Codeforces 798A - Mike and palindrome
- DOM-使用节点
- MySQL数据库初始
- java 基础类库之 FormatFun
- Kettle 使用Json输入