Openssh7.4p1更换为8.2
(过程是用CRT自动记录的,原始记录请到网盘下载链接: https://pan.baidu.com/s/1ons6A_IynGp29eXtjSvZTw 提取码: 9ihe请到这里下载远程到服务器的整个过程记录)
写在前面: 如果编译升级失败,就yum install -y openssh*安装回7.4p1
Openssh下载地址https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/ 找自己需要的版本
本文参考https://www.jianshu.com/p/e75300b7e8be进行。仅记录本人本次过程记录,如果不行,请勿喷(因为是事后整理的)
环境声明:
首先更新yum源:
首先备份(注意当前登录用户权限,我是切换为了root)
/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载源,到如下链接下载自己当前系统的,下载到/etc/yum.repos.d/下面
http://mirrors.aliyun.com/repo/ 我找的阿里的,其他的请自行百度下载
执行yum clean all清理缓存
执行yum makecache
安装运行库(具体视自己情况决定做不做):
yum install gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel zlib-devel
上面yum里的openssl会把openssl安装到如下版本
如果你是ssh到机器进行操作的,无法本地直接操作,那么需要安装telnet,以防止ssh卸载时候不能远程到服务器
yum install telnet-server
yum install xinetd
使用telnet看能否远程到服务器,如果不能就 vi /etc/securetty 在尾部增加pts/0 pts/1 pts/2
配置telnet开机启动
systemctl enable xinetd
systemctl enable telnet.socket
启动telnet
systemctl start telnet.socket
systemctl start xinetd
用telnet连接到服务器(注意切换为root)
停止ssh服务 卸载ssh(rpm -e --nodeps $(rpm -qa | grep openssh)
注意,我30号参考百度的文档(天下文章一大抄,千篇一律)没有升级成功,最后使用yum install -y openssh*安装回7.4p1
查找sshd.pid find / -name ’sshd.pid’ 记录下该文件位置,注意英文的’
删除或者备份/etc/ssh/下的文件,注意如果备份的话该路径下不要有原来文件名
下载openssh8.2,我是下载到了home下的当前登录的用户文件夹,下面截图是解压后的截图(注意切换为root)
下载wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.2p1.tar.gz
解压 tar –zxvf openssh-8.2p1.tar.gz
有的文章说要chown -R root.root ./ openssh-8.2p1我的没有做这个。
进入解压解压文件夹下 cd openssh-8.2p1
编译安装
./configure --prefix=/usr/ --sysconfdir=/etc/ssh/ --with-ssl-dir=/usr/local/ssl --with-md5-passwords --mandir=/usr/share/man/
make && make install
参数说明
--prefix 安装目录 --sysconfdir 配置文件目录 --with-ssl-dir 指定 OpenSSL 的安装目录
--with-privsep-path 非特权用户的chroot目录 --with-privsep-user=sshd 指定非特权用户为sshd --with-zlib 指定zlib库的安装目录 --with-md5-passwords 支持读取经过MD5加密的口令 --with-ssl-engine 启用OpenSSL的ENGINE支持
复制启动文件到/etc/init.d/sshd
cp -a /home/zabbix/openssh-8.2p1/contrib/redhat/sshd.init /etc/init.d/sshd
然后修改启动文件,vi /etc/init.d/sshd 找到PID_FILE注释掉,改为如下截图(就是开始查找sshd.pid的路径)
设置开机启动
参照https://www.jianshu.com/p/e75300b7e8be该文档,引用如下部分,编辑启动服务如下截图
而实际上通过find / -name 'sshd.service',找到sshd.service的位置如下截图,
然后在/usr/lib/systemd/system/下搜索看到如下截图文件(没有sshd.service,而有的是sssd开头的文件)
我们查看sssd.service
这部分的修改有点稀里糊涂,大家不要参考了,可以参照https://www.jianshu.com/p/e75300b7e8be该文档。
做完后,ssh版本如下图
CRT连接的时候报错了,处理过程是,删除原来的连接,新建连接,填入IP地址等然后回车登录提示报错,在连接上右击选择最后一个 Properties ----Connection----SSH2-----Authentication里有个Password,选中Password 点击右边的Properties按钮,在跳出来的窗口输入两次密码确认。如果登录还报错直接点Skip即可,如下图
我这点击Skip后就直接进去了。
最后附上本次的原始操作记录链接:链接: https://pan.baidu.com/s/1ons6A_IynGp29eXtjSvZTw 提取码: 9ihe请到这里下载远程到服务器的整个过程记录,使用的crt自动记录生成的,每个步骤都记录。