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"
配置如图修改前:
修改后:
这里要注意的是这个就是你配置文件的路径,如果你有修改就要改一下。
最后验证一下版本openssh -V