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