一、telent远程管理主机
1. 安装telent服务
服务端: yum install telnet-server -y #安装服务端 useradd dai passwd dai #创建lhj用户,设置lhj密码,密码有规则要求,大小写数字加符号,输2次即可 客户端: yum install telnet -y #安装客户端
2. 测试telent登录
客户端: telnet 192.168.50.200 #测试服务端 #输入用户名和密码即可登录,telnet默认不允许使用root用户登录
二、Zlib、openssl、openssh升级
1. 下载zlib包
官网地址:zlib Home Site
2. 下载operssl包
3. 下载openssh包
官网下载地址:Index of /pub/OpenBSD/OpenSSH/portable/
4. 编译安装zlib
cd /opt #将安装包放到/opt中,建议一次性将三个包全部放入/opt目录下 tar zxvf zlib-1.2.13.tar.gz cd zlib-1.2.13 yum install gcc gcc-c++ make -y #安装编译工具 ./configure --prefix=/usr/local/zlib make && make install #编译安装zlib cd /usr/local/zlib ls #该下面有三个文件include lib share有这三个文件便是安装成功
5. 编译安装openssl
cd /opt tar zxvf openssl-3.0.8.tar.gz cd openssl-3.0.8 #将安装包放入/opt目录下解压进入文件夹 yum install -y perl-CPAN yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker #安装依赖环境 ./config --prefix=/usr/local/ssl --shared #--prefix指定编译到的目录,shared 表示要编译成为动态链接库 make && make install #编译安装ssl,时间较长不要中断 echo '/usr/local/ssl/lib64' >> /etc/ld.so.conf #软件路径写入etc/ld.so.conf 此文件记录了编译时使用的动态库的路径,也就是加载so库的路径 #默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,而通常通过源码包进行安装时,如果不指定--prefix会将库安装在/usr/local目录下,而又没有在文件/etc/ld.so.conf中添加/usr/local/lib这个目录>。这样虽然安装了源码包,但是使用时仍然找不到相关的.so库,就会报错。也就是说系统不知道安装了源码包。 ldconfig -v #验证是否可以查看
6. 准备升级openssh环境
注意必须使用telnet登录要升级的本机, 若不会操作请看上面telnet教程
另一台机器: telnet 192.168.50.200 Trying 192.168.50.200... Connected to 192.168.50.200. Escape character is '^]'. Kernel 3.10.0-693.el7.x86_64 on an x86_64 pc4 login: dai #此处输入账户,注意必须是普通用户 Password: #此处数据密码 Last login: Fri Apr 14 16:58:07 from ::ffff:192.168.50.1 [lhj@pc4 ~]$ su Password: #登录到需要升级的机器后备份ssh文件 cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.bak cp -p /usr/sbin/sshd /usr/sbin/sshd.bak cp -p /usr/bin/ssh /usr/bin/ssh.bak cp -p /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak cp -p /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
②停止服务并备份文件
systemctl stop sshd #停止ssh服务 cp -r /etc/ssh /etc/ssh.old #备份ssh配置文件
③查询原有ssh包并卸载
rpm -qa | grep openssh openssh-7.4p1-11.el7.x86_64 openssh-clients-7.4p1-11.el7.x86_64 openssh-server-7.4p1-11.el7.x86_64 #查询出的结果如上三个包 yum remove openssh-7.4p1-11.el7.x86_64 #卸载系统里原有Openssh包 rpm -qa | grep openssh #再次查看无openssh包
7. 编译安装openssh
cd /opt tar zxvf openssh-8.4p1.tar.gz cd openssh-8.4p1 #解压安装包进入openssh中 ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl make && make install #编译安装openssh 指明zlib路径和ssl路径,过程时间较长不用中断 echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config #修改编译安装的sshd服务配置文件允许root用户登录 echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config #允许公钥免密登录 echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config #禁止密码进行验证 cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config #将编译安装的主配置文件复制到升级前sshd路径下 cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd #将sshd添加到系统中,可以在任意地方使用 cp /usr/local/openssh/bin/ssh /usr/bin/ssh #将ssh命令添加到系统中,可以在任意地方使用 cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen #将ssh-keygen秘钥命令添加到系统中可以在任意地方使用, cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub #将编译安装的公钥拷贝到原公钥路径下 cp -p contrib/redhat/sshd.init /etc/init.d/sshd #将sshd编译安装脚步放到/etc/init.d/文件下 chmod +x /etc/init.d/sshd #给sshd添加可执行权限 chkconfig --add sshd #将sshd服务加入chkconfig管理 chkconfig sshd on #将sshd服务设置开机自启,必须开机自启否则无法远程连接 systemctl restart sshd #重新启动sshd服务 systemctl status sshd #查看sshd服务状态 ssh -V #查看ssh版本是否升级成功 reboot #重启机器测试ssh
8. 报错总结
①编译zlib时报错:Compiler error reporting is too harsh for ./configure (perhaps remove-Werror),原因是未安装依赖环境
②编译openssl时报错:Compilation failed in require at /opt/openssl-3.0.8/Configure line 23. BEGIN,原因是未安装erl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-CPAN 依赖和编译工具
标签:sshd,openssh,Zlib,openssl,telnet,etc,usr,local,ssh From: https://www.cnblogs.com/daiwei-123/p/17323302.html