CentOS7升级Openssh
1.安装telnet服务
防止openssh升级过程中出现问题导致服务器无法连接
1.1 查看是否安装telnet服务
rpm -qa | grep telnet-server
如果没有则安装telnet服务
yum install -y xinetd telnet telnet-server
1.2 启动telnet
systemctl start telnet.socket
systemctl start xinetd
systemctl enable telnet.socket
systemctl enable xinetd
systemctl status telnet.socket
1.3 添加防火墙规则
firewall-cmd --zone=public --add-port=23/tcp --permanent
firewall-cmd --reload
1.4 新增一个普通用户
用普通用户登录telnet,然后su - root
切换到root用户
useradd xxy
passwd xxy
openssh升级完成后关闭telnet服务,参照开启服务的方式
2.安装openssl
2.1 下载
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz --no-check-certificate
2.2 解压安装
#安装依赖
yum -y install gcc
mkdir /usr/local/openssl
#进入解压后openssl文件夹
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make
make install
ldconfig
#备份原来的openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
#新建新的openssl
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
#调整库路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf.d/openssl.conf
ldconfig
#查看版本
openssl version
3.升级openssh
3.1.备份原有ssh
cp -r /etc/ssh /etc/ssh_bak
cp -r /etc/pam.d /etc/pam.d_bak
cp -r /etc/init.d/sshd /etc/init.d/sshd_bak
cp /usr/bin/ssh /usr/bin/ssh_bak
cp /usr/sbin/sshd /usr/sbin/sshd_bak
3.2.下载新版openssh
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.5p1.tar.gz --no-check-certificate
3.3.卸载老版本openssh
- 查看老版本安装
rpm -qa |grep openssh
- 使用
rpm -e --nodeps
删除安装
3.4.安装openssh
-
创建安装文件夹并解压安装文件
mkdir /usr/local/openssh #解压进入解压文件夹 tar -zxvf openssh-9.5p1.tar.gz cd openssh-9.5p1
-
编译和安装
过程中可能会提示缺少相关依赖,通过yum安装即可
#安装依赖 yum -y install pam-devel gcc zlib zlib-devel openssl-devel #编译安装 ./configure --prefix=/usr/local/openssh/ --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd --with-ssl-dir=/usr/local/openssl make make install
-
拷贝文件
cp -p contrib/redhat/sshd.init /etc/init.d/sshd chmod +x /etc/init.d/sshd chkconfig --add sshd cp sshd_config /etc/ssh/sshd_config cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd cp /usr/local/openssh/libexec/sftp-server /usr/libexec/ cp /usr/local/openssh/bin/* /usr/bin/ cp /etc/pam.d_bak/sshd /etc/pam.d/
-
修改配置文件
vim /etc/ssh/sshd_config #修改以下配置: PasswordAuthentication yes PermitRootLogin yes UsePAM yes
-
替换key文件
#执行以下两个命令:提示是否覆盖按“y”,后面直接回车就好 ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key #修改权限 chmod 600 /etc/ssh/ssh_host_ecdsa_key chmod 600 /etc/ssh/ssh_host_rsa_key
-
启动sshd服务,查看ssh版本
systemctl daemon-reload systemctl start sshd
License:
CC BY 4.0