CentOS7升级openssh8.0及升级后无法root登陆处理

openssh7.4自带一些已存在的漏洞。所以公司决定升级openssh到8.0

一、升级openssl(开版本需要有时候可以不升级)

1.安装依赖:(这里可以先挂载安装镜像到YUM进行安装也可以)

方法一:rpm -ivh openssl-devel-1.0.1e-57.el6.x86_64.rpm  krb5-devel-1.10.3-65.el6.x86_64.rpm  keyutils-libs-devel-1.4-5.el6.x86_64.rpm  libcom_err-devel-1.41.12-23.el6.x86_64.rpm  libselinux-devel-2.0.94-7.el6.x86_64.rpm  libsepol-devel-2.0.41-4.el6.x86_64.rpm zlib-devel-1.2.3-29.el6.x86_64.rpm

方法二:yum install  -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel  pam-devel

2.备份旧版本

mv /usr/bin/openssl /usr/bin/openssl_bak

mv /usr/include/openssl /usr/include/openssl_bak

3.安装新版本

tar zxvf openssl-1.0.1h.tar.gz

cd openssl-1.0.1h

./config shared && make && make install

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl

加载新配置
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf

/sbin/ldconfig

4.确认新版本

openssl version

二、安装openssh

tar zvxf openssh-8.0p1.tar.gz 

1.备份旧配置

mv /etc/ssh/* /tmp

cd openssh-8.0p1

openssh-8.0p1

2.编译和安装

上面openssl有安装

./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl --with-zlib --with-md5-passwords --with-pam && make && make install

如果上面的openssl没有重新编译安装,则运行以下命令

yum -y install pam-devel

yum -y install openssl-devel

./configure --prefix=/usr/  --sysconfdir=/etc/ssh -with-ssl-dir=/usr/local/ssl --with-pam

3.设置开机启动项目(这里是在openssh-8.0p1文件夹下进行如下命令)

cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd

chkconfig --add sshd
systemctl enable sshd
4.systemd管理的sshd文件删除或者移走或者删除,不移走的话影响我们重启sshd服务

mv  /usr/lib/systemd/system/sshd.service  /tmp
mv  /usr/lib/systemd/system/sshd.socket  /tmp

5.修改配置文件
vim /etc/ssh/sshd_config

Protocol 2
SyslogFacility AUTHPRIV
PermitRootLogin yes #这个是允许root登陆
PasswordAuthentication yes
ChallengeResponseAuthentication no
#UsePAM yes  #这个需要注释不然我这里发现会root无法登陆密码对了也不行
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding yes

6.重启服务测试

/etc/init.d/sshd restart

systemctl restart sshd

三、问题处理

楼主在升级CentOS6.6的时候没有发现问题,但是升级CentOS7.4发现升级完成后用root是怎么登陆也登陆不上去摸索了一天,早上终于终于处理了:

我修改了2个地方:

1.就是上面的配置文件/etc/ssh/sshd_config中UsePAM yes注释#UsePAM yes

2.修改启动文件

vim /etc/init.d/sshd

在$SSHD $OPTIONS && success || failure这句话前面加一句:

OPTIONS="-f /etc/ssh/sshd_config"

配置如图修改前:

CentOS7升级openssh8.0及升级后无法root登陆处理_第1张图片

修改后:

CentOS7升级openssh8.0及升级后无法root登陆处理_第2张图片

这里要注意的是这个就是你配置文件的路径,如果你有修改就要改一下。

最后验证一下版本openssh -V

CentOS7升级openssh8.0及升级后无法root登陆处理_第3张图片

你可能感兴趣的:(linux)