CentOS7-升级OpenSSH
安装前须知的命令说明
systemctl 如何启动、关闭、启用/禁用服务
启动服务:systemctl start xxx.service
关闭服务:systemctl stop xxx.service
重启服务:systemctl restart xxx.service
显示服务的状态:systemctl status xxx.service
在开机时启用服务:systemctl enable xxx.service
在开机时禁用服务:systemctl disable xxx.service
查看服务是否开机启动:systemctl is-enabled xxx.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
1.准备好安装需要的包
下载openssh包和openssl的包(友情提示:迅雷下载会快哦)
openssh版本openssh-xxx.tar.gz:https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/
openssl版本openssl-xxx.tar.gz:https://ftp.openssl.org/source/
注意:openssh和openssl版本对应关系请自行搜索
我这里用的是:
openssh-8.3p1.tar.gz
openssl-1.1.1g.tar.gz
2.解压
# tar xfz openssh-8.3p1.tar.gz
# tar xfz openssl-1.1.1g.tar.gz
3.安装依赖包
升级需要几个组件,有些是和编译相关的等
# yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel
安装pam和zlib等
# yum install -y pam* zlib*
4.安装telnet
为防止openssh升级失败。所以安装telnet。保证openssh升级失败也可以通过telnet连接服务器,进行恢复操作。并不用去机房。
# yum install -y telnet-server # yum install -y xinetd # systemctl start telnet.socket # systemctl start xinetd
建议开启telnet和xinetd开机自动启动,避免reboot后连不上Telnet
# systemctl enable xinetd.service
# systemctl enable telnet.socket
CentOS 7 采用了 firewalld 防火墙,查询是否开启23端口
# firewall-cmd --query-port=23/tcp
显示23端口没有开启使用下面命令开启23端口
# firewall-cmd --zone=public --add-port=23/tcp --permanent
重新加载firewall-cmd
# firewall-cmd --complete-reload
重新查询23端口是否开放
# firewall-cmd --query-port=23/tcp
验证telnet
使用远程telnet连接验证
5.安装openssl
备份
# mv /usr/bin/openssl /usr/bin/openssl_bak
# mv /usr/include/openssl /usr/include/openssl_bak
编译安装
# cd openssl-1.1.1g
# ./config --prefix=/usr/local/openssl --shared
# make && make install
命令执行完毕,echo $?查看下最后的make install是否有报错,0表示没有问题
# echo $?
下面2个文件或者目录做软链接 (刚才前面的步骤mv备份过原来的)
# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# ln -s /usr/local/openssl/include/openssl /usr/include/openssl
命令行执行下面2个命令加载新配置
# echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
# /sbin/ldconfig
查看确认版本。
# openssl version
6.安装openssh
安装前须知
需要把selinux关闭,使用命令getenforce查看selinux状态,Enforcing为开启,Permissive为关闭
# getenforce
临时关闭selinux
setenforce 0
永久关闭selinux,需要重启服务器
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
注:友情提示,不关闭selinux会出bug的
卸载旧的ssh
# cp -r /etc/ssh /etc/ssh.old #备份一些之前的文件 # rpm -qa|grep openssh # rpm -e --nodeps openssh-clients-6.6.1p1-31.el7.x86_64 (版本可能不一样,以实际为主) # rpm -e --nodeps openssh-6.6.1p1-31.el7.x86_64 (版本可能不一样,以实际为主) # rpm -e --nodeps openssh-server-6.6.1p1-31.el7.x86_64 (版本可能不一样,以实际为主) # rpm -qa|grep openssh
连接到其他计算机时,OpenSSH作为两个进程运行。第一个进程是特权进程,并根据需要控制权限 的颁发。第二个进程与网络通信。设置适当的环境需要额外的安装步骤,这些步骤通过以root用户身份发出以下命令来执行 :
# 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
编译
# cd openssh-8.3p1
# ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/openssl/include --with-ssl-dir=/usr/local/openssl --with-zlib --with-md5-passwords --with-pam && make
修改相应文件权限
# chmod 600 /etc/ssh/ssh_host_rsa_key
# chmod 600 /etc/ssh/ssh_host_ecdsa_key # chmod 600 /etc/ssh/ssh_host_ed25519_key
安装
# make install
安装完毕 检查下结果
# echo $?
配置
# 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-8.3p1 # install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-8.3p1
修改sshd_config,最下面添加如下几个配置:
# vi /etc/ssh/sshd_config
UsePAM no
UseDNS no
PasswordAuthentication yes
PubkeyAuthentication yes
配置启动设置和开机启动
# cp -p contrib/redhat/sshd.init /etc/init.d/sshd
# cp -p contrib/redhat/sshd.pam /etc/pam.d/sshd.pam # chmod +x /etc/init.d/sshd # chkconfig --add sshd # chkconfig sshd on # chkconfig --list sshd # systemctl restart sshd
验证ssh
# ssh -V
7.关闭telnet服务
# systemctl disable xinetd.service
# systemctl disable telnet.socket
# systemctl stop xinetd.service
# systemctl stop telnet.socket
8.回滚操作
如果之前是rpm包安装的。并且按照以上步骤操作,可以直接以下命令进行回滚
# yum -y install openssh-clients # yum -y install openssh-server # yum -y install openssh
9.文档有用的话记得点个赞哦-.-,有什么问题也可以下方评论
参考
https://www.jianshu.com/p/220f7fd908b0