centos7升级openSSH(修改版)
目录
一:查看版本和下载
所有安装包下载地址:
链接:https://pan.baidu.com/s/1INkUPgBCrv2Dx05PE5XVLA
提取码:i627
1.1所需安装包目录
所有服务器的openssh更新的都是统一的上传文件目录: /tools/openSSH,因为openSSH升级可能涉及到几台甚至几十台服务器,统一的路径便于同时多台服务器做升级操作及后期维护
1.2:查看系统openssh包
rpm -qa|grep openssh
1.3:查看版本
ssh -V
1.4:下载地址
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
二:安装telnet
建议安装,如果你升级到一半,VPN突然掉了,或者网络断开,你就连不上xshell了,如果安装了telnet后,就是网络和VPN断开,也可以进行下一步操作
2.1:卸载telnet
为了避免在生产上安装openSSH失败,安装telnet
检查telnet是否安装
rpm -qa | grep telnet
没有安装,如果安装,请先卸载后重新安装
列如:
关闭telnet服务
systemctl disable xinetd.service
systemctl stop xinetd.service
systemctl disable telnet.socket
systemctl stop telnet.socket
执行卸载
rpm -e --nodeps telnet-0.17-47.el6.x86_64
rpm -e --nodeps telnet-server-0.17-64.el7.x86_64
2.2:上传安装包
统一上传路径 /tools/telnet
2.3:安装
注意: 需要先安装xinetd,然后安装telnet客户端,再安装telnet服务端,不然可能会报错
cd /tools/telnet
rpm -ivh xinetd-2.3.14-38.el6.x86_64.rpm
rpm -ivh telnet-0.17-47.el6.x86_64.rpm
rpm -ivh telnet-server-0.17-64.el7.x86_64.rpm
2.4:启动服务
systemctl start telnet.socket
systemctl start xinetd
2.5:设置开机自启
3:设置xinetd开机自启
systemctl enable xinetd.service
4:设置telnet开机自启
systemctl enable telnet.socket
2.6:查看telnet服务是否启动
netstat -antupl | grep 23
cat /etc/services | grep -a 'telnet'
2.7:root用户登录测试
开放root用户的权限,编辑以下文件.注释掉这一行:auth required pam_securetty.so
vim /etc/pam.d/remote
然后关闭centos7防火墙
停止firewall
systemctl stop firewalld.service
firewall开机启动
systemctl disable firewalld.service
window测试
三:编译安装gcc
3.1:查看是否安装了gcc
gcc -v
表示需要安装gcc
3.2:强制安装
进入安装目录
cd /tools/openSSH/gcc
rpm -ivh *.rpm --nodeps --force
3.3:查看是否安装成功
gcc -v
四:编译安装(升级openSSL)
4.1:下载
https://ftp.openssl.org/source/old/1.0.2/
查看当前版本
openssl version
4.2:上传解压安装
1:解压
cd /tools/openSSH
tar -zxvf openssl-1.0.2.tar.gz -C /training/
2:编译安装
1:进入到安装目录
cd /training/openssl-1.0.2/
2:编译安装
./config shared && make && make install
以上命令执行完毕,echo $?查看下最后的make install是否有报错,0表示没有问题
3:检测是否编译正确
echo $?
如果数字为0,则编译安装成功
4:备份后做软链接
1:先进行备份
[root@gnc-4a-umap-03 openssl-1.0.2]# ll /usr/bin/openssl
[root@gnc-4a-umap-03 openssl-1.0.2]# mv /usr/bin/openssl /usr/bin/openssl_bak
2:软链接
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ll /usr/bin/openssl
4.3:相关配置及验证
1:加载新配置
[root@gnc-4a-umap-03 openssl-1.0.2]# echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
[root@gnc-4a-umap-03 openssl-1.0.2]# /sbin/ldconfig
2:验证
openssl version
五:编译安装(openssl-devel;pam-devel;openSSH)
5.1:编译安装openssl-devel
在本地的centos镜像文件下的O:\Packages目录下,依次找到下列文件,然后进行上传
/tools/openSSH/openssl-devel
然后直接强制性安装
cd /tools/openSSH/openssl-devel
rpm -ivh *.rpm --nodeps --force
5.2编译安装pam-devel
1:在线安装
yum install openssl openssl-devel -y
2:离线安装
下载地址
http://rpmfind.net/linux/rpm2html/search.php?query=pam-devel(x86-64)
cd /tools/openSSH
rpm -ivh pam-devel-1.1.8-23.el7.x86_64.rpm --nodeps --force
5.3:编译安装openSSH
1:解压
cd /tools/openSSH
tar -zxvf openssh-8.0p1.tar.gz -C /training/
2:编译安装
1:进入安装目录
cd /training/openssh-8.0p1/
2:执行编译安装命令
./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
3:查看是否安装成功
echo $?
4:授予权限(如果不授权,会启动ssh失败)
1:授予文件可写的权限
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key
2:授予权限后,再次编译安装
./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
六:编译安装openSSH和配置
6.1:配置root用户登录
修改配置文件
vim /etc/ssh/sshd_config
取消注释#PermitRootLogin yes,也就是说给root登录放行
6.2:开机自启,服务启动
下面的文件根据启动需要看是否拷贝,如果启动报sshd:未识别的服务,就需要拷贝下列文件
1:拷贝目录
进入到openSSH安装目录:
cd /training/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
把原先的systemd管理的sshd文件删除或者移走或者删除,不移走的话影响我们重启sshd服务
mv /usr/lib/systemd/system/sshd.service /training/
2:开机自启
chkconfig sshd on
3:加入系统服务
chkconfig --add sshd
systemctl enable sshd
七:启动服务测试
7.1:启停服务,查看端口
1:停止ssh服务
[root@gnc-4a-umap-03 openssh-8.0p1]# /etc/init.d/sshd stop
2:查看端口
netstat -lntp
3:启动ssh服务
[root@gnc-4a-umap-03 openssh-8.0p1]# /etc/init.d/sshd start
4:再次查看端口
netstat -lntp
5:重启ssh服务
[root@gnc-4a-umap-03 openssh-8.0p1]# /etc/init.d/sshd restart
7.2:重启虚拟机,连接xshell测试(查看版本)
生产环境,不要擅自重启虚拟机
查看版本
[root@gnc-4a-umap-03 openssh-8.0p1]# ssh -V
OpenSSH_8.0p1, OpenSSL 1.0.2 22 Jan 2015
已经升级成功了
7.3:关闭telnet服务
ssh升级成功后,telnet就用不上了,这时可以将其服务关闭,恢复原始状态
systemctl disable xinetd.service
systemctl stop xinetd.service
systemctl disable telnet.socket
systemctl stop telnet.socket
然后卸载掉
rpm -qa | grep telnet
rpm -qa | grep xinetd
rpm -e --nodeps telnet-server-0.17-64.el7.x86_64
rpm -e --nodeps xinetd-2.3.14-38.el6.x86_64