文章目录
1 升级openssh为源里最高版本
yum -y update openssh
2 安装编译openssh 8.3相关的依赖
yum -y install gcc gcc-c++ openssl-devel pam-devel lrzsz wget policycoreutils-python
3 开启telnet服务
开启telnet服务目的是防止ssh卸载后连不上远程机器
3.1 安装依赖
yum install -y telnet-server xinetd
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd
3.2 创建telnet登录账户
默认的root账号不能直接登录, 这里需要临时创建一个账号用于操作, 操作完删除。
useradd admin # 增加账号
passwd admin # 修改密码
3.3 打开端口
根据实际情况以下方法择其一
3.3.1 若系统使用防火墙
firewall-cmd --zone=public --add-port=23/tcp --permanent
firewall-cmd --reload
3.3.1 若系统使用iptables
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
echo '-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT' >> /etc/sysconfig/iptables
4 升级安装openssh
# telnet 登录待升级机器
# 查看openssh版本
rpm -qa | grep openssh-server
# 备份原配置
cp -r /etc/ssh /etc/ssh.bak
# 卸载
for i in $(rpm -qa |grep openssh-server);do rpm -e $i --nodeps ;done
mkdir -p ~/openssh
cd ~/openssh
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.3p1.tar.gz
tar xf openssh-8.3p1.tar.gz
cd openssh-8.3p1
./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
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key
# 注意修改sshd_config中的端口
# 设置开机启动
cp ./contrib/redhat/sshd.init /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
chkconfig --list | grep sshd
service sshd restart
reboot
5 清理
5.1 清理firewall
firewall-cmd --permanent --zone=public --remove-port=23/tcp
firewall-cmd --reload
5.2 清理iptables
vim /etc/sysconfig/iptables
# 删除23端口那行
5.3 卸载telnet服务
rpm -e xinetd telnet-server --nodeps
参考
- https://blog.csdn.net/cndndj/article/details/107098553