升级新版openssh
该升级涉及到重启服务器操作,请慎重操作!!!
下载openssh-8.3
百度网盘下载:
链接:https://pan.baidu.com/s/1geeEjFNwJKKDZ8Aa1iYROw
提取码:079c
准备工作
1、关闭selinux验证
vim /etc/selinux/config
将selinux设置为disabled
source /etc/selinux/config
*备注:可以先把下载的openssh-8.3 上传服务器备用*
2、安装telnet:以备ssh卸载后无法登陆
yum install -y telnet-server xinetd
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd
3、开启telnet端口(升级完毕关闭23端口)
firewall-cmd --zone=public --add-port=23/tcp --permanent
firewall-cmd --reload
#或者
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
#重启防火墙:
service iptables restart
#新建一个临时账户用于登录
useradd admin
passwd admin
输入密码
重复输入密码
安装openssh
1、使用telnet登录,切换至su用户,安装openssl依赖包
yum install -y gcc gcc-c++ openssl-devel pam-devel
2、可能需要组件,自行安装
yum install -y lrzsz wget policycoreutils-python
3、查看安装的ssh 和卸载ssh
#查看
rpm -qa | grep openssh-server
#卸载
for i in $(rpm -qa |grep openssh-server);do rpm -e $i --nodeps ;done
#删除原ssh配置文件
rm -rf /etc/ssh
4、下载openssh
# 执行手动下载openssh 和上传服务器备用操作 可忽略此下载步骤
wget http://kartolo.sby.datautama.net.id/pub/OpenBSD/OpenSSH/portable/openssh-8.3p1.tar.gz -P /usr/local/
cd /usr/local/
tar -zxvf openssh-8.3p1.tar.gz
mv openssh-8.3p1 openssh
cd openssh
5、安装openssh
# 进入openssh解压目录下,执行
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords--mandir=/usr/share/man -with-zlib--without-zlib-version-check --with-pam --with-ssl-dir=/usr/local/ssl --without-openssl-header-check
make && make install
配置ssh与查看版本
1、设置自动启动
cp ./contrib/redhat/sshd.init /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
chkconfig --list | grep sshd
2、允许root用户连接
vim /etc/ssh/sshd_config
添加配置到以下位置
#PermitRootLogin prohibit-password
PermitRootLogin yes
3、考虑到各个组件的载入问题建议重启服务器 reboot
service sshd restart
reboot
4、查看版本
ssh -V
**关闭 telnet-server 服务**
备注: 该操作需要重启服务器后使用ssh登录没问题之后再执行 以防止ssh远程不了后没有其他远程操作
firewall-cmd --permanent --zone=public --remove-port=23/tcp
firewall-cmd --reload
卸载telnet-server
rpm -e xinetd telnet-server --nodeps
冻结admin账户
passwd admin -l
避坑指南
SELinux 未关闭情况需要开放端口授权:
查看端口
semanage port -l | grep ssh
开放端口
semanage port -a -t ssh_port_t -p tcp 22