升级后的效果
升级前把selinux 关闭
vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,保存退出。
如果ssh版本过低,最好先yum update openssh升级下到目前yum仓库默认的openssh7.4p1版本
安装telnet-server以及xinetd
yum install xinetd telnet-server -y
配置telnet
查看Telnet文件是否存在
ll /etc/xinetd.d/telnet
存在:
把配置文件配置root登录的disable = no 改成 disable = yes
配置Telnet登录的终端类型,在/etc/securetty文件末尾增加一些pts终端,如下
pts/0
pts/1
pts/2
pts/3
配置后的显示
启动telnet服务,并设置开机自启动
systemctl enable xinetd
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd
netstat -lntp|grep telnet
测试Telnet是否能够正常访问,防止ssh意外连接中断造成升级失败,不能进行远程登录
安装依赖包
~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
升级需要几个组件,有些是和编译相关的
yum install -y gcc-c++ glibc make autoconf openssl openssl-devel pam-devel
安装pam和zlib等(后续升级操作没有用到,可自行测试不安装是否有影响)
yum install -y pam* zlib*
下载openssh和OpenSSL升级包
https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/
https://ftp.openssl.org/source/
安装OpenSSL
mkdir /mnt/openssh
cd /mnt/openssh
rz -E //需要安装lrzsz
ll
解压文件
tar -zxvf openssl-****.tar.gz openssh*****.tar.gz
ll
cd
备份两个文件(如果存在的话就执行)
ll /usr/bin/openssl
mv /usr/bin/openssl /us/bin/openssl_bak
ll /usr/include/openssl
mv /usr/include/openssl /user/include/openssl_bak
编译安装新版本OpenSSL
cd /mnt/openssh/openssl-*
./config shared && make install
以上命令执行完毕,echo $?查看整个make install是否有报错,0表示没有问题
下面2个文件或者目录做软连接(前面备份的两个文件)
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
ll /usr/bin/openssl
ll /usr/include/openssl -ld
执行下面两个命令加载新配置
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
/sbin/ldconfig
查看确认版本
openssl version
有可能会出现如下报错
原因:库的位置有错
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
解决办法
```
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
```
安装openssh
解压openssh安装包
cd /mnt/openssh
tar -zxvf openssh-*.tar.gz
cd openssh-*
命令行删除原先ssh的配置文件和目录
然后配置、编译安装
mv /etc/ssh /etc/ssh_bak
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-include=/usr/local/ssl/include --with--ssl-dir=/usr/locla/ssl --with-zlib --with-md5-passwords --with-pam && make install
echo $?
修改配置文件如下内容
grep "^PermitRootLogin" /etc/ssh/sshd_config
PermitRootLogin yes
grep "UseDNS" /etc/ssh/sshd_config
UseDNS no
从原先的解压包中拷贝一些文件到目标位置
cp -a contrib/rehat/sshd.init /etc/init.d/sshd
cp -a contrib/rehat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
chkconfig --add sshd
systemctl enable sshd
把原先的systemd管理的sshd文件删除或者移走或者删除,否则会影响sshd重启
mv /usr/lib/systemd/sshd.service /mnt
设置开机自启动
chkconfig sshd on
测试自启动是否正常
/etc/init.d/sshd/ restart
netstat -lntp
/etc/init.d/sshd stop
netstat -lntp
/etc/init/d/sshd start
systemd方式
systemctl stop sshd
netstat -lntp
systemctl start sshd
netstat -lntp
systemctl restart sshd
netstat -lntp
检查版本
ssh -V