一.先安装telnet服务,以防卸载openssh后连接不到服务器

yum install -y telnet-server
yum install -y xinetd 
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd

默认情况下,系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容:

echo  'pts/0'  >>/etc/securetty
echo 'pts/1' >>/etc/securetty

systemctl restart xinetd.service

然后在本地测试telnet能否连接到服务器 , 如果一直报密码无效要注意selinux和防火墙 连接到的话就是如下显示.输入root密码即可登录

Kernel 3.10.0-514.el7.x86_64 on an x86_64
localhost login: root
Password:
Last login: Tue Nov 13 15:57:03 from 172.16.0.10
[root@localhost ~]#

二.升级开始:(注意 : 关闭SELinux)

先把openssh-7.9p1.tar.gz传到服务器上 , 在进行升级的一系列操作.

1.yum安装依赖 yum install -y gcc openssl openssl-devel pam-devel rpm-build pam-devel

2.卸载openssh

[root@localhost src]# rpm -qa | grep openssh
[root@localhost src]# rpm -e `rpm -qa | grep openssh` --nodeps
[root@localhost src]# rpm -qa | grep openssh

3.安装openssh7.9 1)执行如下命令,设置适当的环境 (参考,包在这里下载 http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssh.html ) install -v -m700 -d /var/lib/sshd && chown -v root:sys /var/lib/sshd && groupadd -g 50 sshd && useradd -c 'sshd PrivSep' -d /var/lib/sshd -g sshd -s /bin/false -u 50 sshd 2)解压

[root@localhost src]# tar -zxvf openssh-7.9p1.tar.gz 
[root@localhost src]# cd openssh-7.9p1

3)安装

[root@localhost src]# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers
[root@localhost src]#  make && make install

因为权限问题而报出警告 修改文件权限后再次执行make install

[root@localhost openssh-7.9p1]# chmod 600 /etc/ssh/ssh_host_rsa_key
[root@localhost openssh-7.9p1]# chmod 600 /etc/ssh/ssh_host_ecdsa_key
[root@localhost openssh-7.9p1]# chmod 600 /etc/ssh/ssh_host_ed25519_key
[root@localhost openssh-7.9p1]#  make install

4)执行如下命令 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* /usr/share/doc/openssh-7.9p1

[root@localhost openssh-7.9p1]# ssh -V
OpenSSH_7.9p1, OpenSSL 1.0.2k-fips  26 Jan 2017

5)修改配置文件 PermitRootLogin yes 允许root远程登录 , 开机自启

[root@localhost openssh-7.9p1]# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
[root@localhost openssh-7.9p1]# cp -a contrib/redhat/sshd.init /etc/init.d/sshd
[root@localhost openssh-7.9p1]# chkconfig --add sshd
[root@localhost openssh-7.9p1]# chkconfig sshd on
[root@localhost openssh-7.9p1]# service sshd start
Starting sshd (via systemctl):                             [  OK  ]
[root@localhost openssh-7.9p1]# service sshd restart
Restarting sshd (via systemctl):                           [  OK  ]
[root@localhost openssh-7.9p1]# chkconfig --list sshd

4.把telnet关掉

[root@localhost openssh-7.9p1]# rpm -qa telnet-server
telnet-server-0.17-64.el7.x86_64
[root@localhost openssh-7.9p1]# systemctl stop telnet.socket 
[root@localhost openssh-7.9p1]# systemctl stop xinetd
[root@localhost openssh-7.9p1]# systemctl disable xinetd.service   
Removed symlink /etc/systemd/system/multi-user.target.wants/xinetd.service.
[root@localhost openssh-7.9p1]# systemctl disable telnet.socket
Removed symlink /etc/systemd/system/sockets.target.wants/telnet.socket.