因为是事后总结,所以在此大致说一下思路,希望对你有帮助;
首先openssh需要依赖openssl,经过我修复漏洞之后了解的大概是openssh需要依赖指定的openssl版本,如果版本不对应会出现openssh无法安装。
openssl升级可以参考https://blog.51cto.com/u_7424593/1840487
写写我自己的openssl操作步骤
如上面的链接准备4个包(ssh我想通过yum直装,这里主要是安装openssl)
pam-devel-1.1.8-23.el7.x86_64.rpm
libopenssl-devel-1.0.1c-2.1.3.x86_64.rpm
zlib-devel-1.2.7-2.1.2.x86_64.rpm
openssl-1.0.2h.tar.gz
一、安装依赖软件
1、安装必要的gcc、gcc-c++编译工具及libopenssl-devel、pam-devel、zlib-devel
yum -y install gcc gcc-c++ ncurses ncurses-devel cmake
mkdir /usr/local/src
cd /usr/local/src
rpm -ivh libopenssl-devel-1.0.1c-2.1.3.x86_64.rpm --nodeps --force
rpm -ivh pam-devel-1.1.8-23.el7.x86_64.rpm --nodeps --force
rpm -ivh zlib-devel-1.2.7-2.1.2.x86_64.rpm
【
如果安装zlib出现报错,请使用这个:
rpm -ivh zlib-devel-1.2.7-2.1.2.x86_64.rpm --nodeps --force
】
二、安装OpenSSL
1、检查系统自带的openssl
cd /usr/local/src
rpm -q openssl
=>openssl-0.9.8j-0.50.1
# 由于openssl依赖的软件太多,所以在升级openssl时,不用卸载旧的版本。如果强制卸载可能导致系统不能正常运行
openssl version
=>OpenSSL 0.9.8j-fips 07 Jan 2009
# 检查openssl的目录
which openssl
=>/usr/bin/openssl
# 在升级过程中将旧版的相关文件进行备份,在升级新版本后重新链接替换为新版本对应的文件目录
whereis openssl
=>openssl: /usr/bin/openssl /usr/bin/X11/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz
ls /etc/ssl/
=>certs openssl.cnf private servercerts
# 备份上述文件,/usr/bin/X11/openssl为/usr/bin/openssl的软链接
mkdir /home/ssl_bak
mv /usr/bin/openssl /home/ssl_bak/
mv /etc/ssl /home/ssl_bak/etc_ssl
mv /usr/include/openssl /home/ssl_bak/include_openssl
备份完之后最后去路径中查一遍
2、升级openssl
1)安装openssl-1.0.2h.tar.gz
cd /usr/local/src
tar -zxf openssl-1.0.2h.tar.gz
cd openssl-1.0.2h/
./config --prefix=/usr/local/openssl --openssldir=/etc/ssl shared zlib
make
make install(必须要这一步,否则可能会不能使用)
# 查看安装好的/usr/local/openssl目录文件
ls /usr/local/openssl/{bin,include,lib}
=>/usr/local/openssl/bin:
c_rehash fips_standalone_sha1 fipsld openssl
/usr/local/openssl/include:
openssl
/usr/local/openssl/lib:
engines fips_premain.c.sha1 fipscanister.o.sha1 libcrypto.so libssl.a libssl.so.1.0.0
fips_premain.c fipscanister.o libcrypto.a libcrypto.so.1.0.0 libssl.so pkgconfig
# 查看/etc/ssl目录
ls /etc/ssl/
=>certs man misc openssl.cnf private
3、配置升级后的openssl的相关目录(链接openssl程序)
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig
# 查看升级的openssl版本
openssl version
=>OpenSSL 1.0.2h 3 May 2016
三、卸载系统原有的OpenSSH
# 停止sshd服务
service sshd stop
# 查看当前的openssh版本
rpm -qa openssh*
# 卸载openssh
yum remove openssh*
如果卸载不了,可以使用此项
# 使用rpm查询系统里面openssh的RPM软件包名称
rpm -qa | grep openssh
语法:rpm -e RPM包的名称
rpm -e opensshxxx
卸载完成之后再做下一步
四、安装 openssh
安装 openssh
yum install openssh-server
如果安装不上,建议将yum源切换到阿里云,阿里云的是最新版的openssh
切换见这里 https://www.qunniao.net/113.html
yum install openssh-server
vim /etc/ssh/sshd_config
按以下图配置,主要是上面四个红箭头
参数详解
Port 22 #定义ssh监听的端口号,默认为22
Protocol 2,1 #设置使用ssh协议的顺序,先使用ssh2,如果不成功再使用ssh
Protocol 2 #设置只使用ssh2协议
ListenAddress 0.0.0.0 #设置ssh服务器绑定的ip地址,默认为所有可用的ip地址
PermitRootLogin yes #设置是否允许root登录,默认允许
PermitEmptyPasswords no #设置是否允许空密码的客户登录,默认为禁止
PasswordAuthentication yes #设置是否使用口令认证方式,如果要使用公钥认证方式,可将其设置为no
启动服务
systemctl start sshd
开机自启
systemctl enable sshd
然后就可以使用xshell连接了
本文所需资源我放在CSDN上了,也可私聊我:https://download.csdn.net/download/qq_15088653/18235551