1、检查系统内核
2、准备离线升级
依赖包下载地址:
https://vault.centos.org/
3、离线升级准备
①、关闭selinux
vim /etc/selinux/config
将selinux设置为disabled
setenforce 0
②、安装telnet,防止ssh卸载后无法远程
yum install -y telnet-server xinetd
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd
#创建admin用户,方便telnet登录
useradd -m name
passwd name
③、开启telnet端口
vi /etc/xinetd.d/telnet/
disabled=no
firewall-cmd --zone=public --add-port=23/tcp --permanent
firewall-cmd --reload
④、使用telnet登录
telnet IP
name
password
#切换到root
su root
#切换root用户报错
su: Permission denied
#更改用户组
usermod -aG wheel admin
4、安装openssh
①、安装openssl依赖包
yum install -y gcc gcc-c++ openssl-devel pam-devel
离线:
rpm -ivh *.rpm
②、可能需要组件,自行安装
yum install -y lrzsz wget policycoreutils-python
③、查看安装的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
④、下载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
⑤、安装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
cp ./contrib/redhat/sshd.init /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
chkconfig --list | grep sshd
#允许root用户连接
vim /etc/ssh/sshd_config
# 添加配置到以下位置
#PermitRootLogin prohibit-password
PermitRootLogin yes
port=22
#semanage port -a -t ssh_port_t -p tcp 22
考虑到各个组件的载入问题建议重启服务器 reboot
service sshd restart
#重启之前重新打开一个服务器进入界面,验证是否正常
reboot
⑥、查看版本
ssh -V
5、ssh远程登录报错解决
vim /etc/ssh/sshd_config
# 最后一行添加:
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1
#连接成功之后报X11forwarding request。。。。
vi /etc/ssh/sshd_config 在X11这行改为X11Forwarding yes,
然后再将UseLogin参数为no,可能这一行最开始是被注释,去掉注释,保存之后重启sshd服务,重新连接即可
6、收尾工作
关闭 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用户
userdel -r admin