2024

OpenSSH升级后,密码正确却无法登录,解决记录

升级openssh后,发现ssh无法连接,而设置selinux关闭后,就可以了,但是又不想直接关闭了事,查阅很多资料后发现了问题所在,根本原因在与启动UsePAM yes,并且覆盖了原本的/etc/pam.d/sshd 和/etc/ssh/sshd_config

解决方案:
1、openssh编译过程中添加参数–with-pam

2、创建selinux新的策略,放行sshd直接读shadow


# vi /etc/ssh/ssh_password
module ssh_password 1.0;
 
require {
     type sshd_t;
     type shadow_t;
     class file { read open };
}
 
#============= sshd_t ==============
allow sshd_t shadow_t:file { read open };
 
# cd /etc/ssh/
# checkmodule -M -m -o ssh_password.mod ssh_password
# semodule_package -o ssh_password.pp  -m ssh_password.mod
# ll ssh_password*
-rw-r--r--. 1 root root 187 Mar 20 12:07 ssh_password
-rw-r--r--. 1 root root 926 Mar 20 12:08 ssh_password.mod
-rw-r--r--. 1 root root 942 Mar 20 12:08 ssh_password.pp
# semodule -i ssh_password.pp
# semodule -l |grep ssh
rssh
ssh
ssh_password


centos7升级openssl

升级了openssh,顺带着openssl也一并升级了

先打开https://openssl-library.org/source/index.html

下载最新的openssl,并且上传服务器,这里我下载的版本是openssl-3.3.2

执行命令解压缩

tar xzf openssl-3.3.2.tar.gz

cd openssl-3.3.2/

这里先安装依赖模块

sudo yum install perl-IPC-Cmd perl-Data-Dumper gcc gcc-c++ perl perl-devel -y

开始编译

./config enable-tls1_3 --prefix=/usr/local/openssl-3.3.2 --libdir=lib

提示成功,继续执行

make && make install

这个时候经常出现报错

/usr/bin/perl util/mkinstallvars.pl PREFIX=. BINDIR=apps APPLINKDIR=ms LIBDIR= INCLUDEDIR=include “INCLUDEDIR=./include” ENGINESDIR=engines MODULESDIR=providers “VERSION=3.3.2” “LDLIBS=-lz -ldl -pthread ” > builddata.pm
“pairs” is not exported by the List::Util module
Can’t continue after import errors at util/mkinstallvars.pl line 14.
BEGIN failed–compilation aborted at util/mkinstallvars.pl line 14.

提示是 List::Util 模块有问题

修复他

yum install cpan -y

sudo cpan List::Util

结果还是报错

/usr/bin/perl “-I.” “-Mconfigdata” “-Mbuilddata” “util/dofile.pl” “-oMakefile” exporters/cmake/OpenSSLConfig.cmake.in > OpenSSLConfig.cmake
builddata.pm did not return a true value.
BEGIN failed–compilation aborted.
make: *** [OpenSSLConfig.cmake] 错误 255

看样子是配置的问题

make clean

sudo cpan IPC::Cmd
sudo cpan Exporter

./config enable-tls1_3 --prefix=/usr/local/openssl-3.3.2 --libdir=lib

make
sudo make install

重新做链接

ln -sf /usr/local/openssl-3.3.2/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl-3.3.2/include/openssl /usr/include/openssl

检查是否有依赖缺失

ldd /usr/bin/openssl

如果显示有not found,说明需要手动做链接

例如提示

libssl.so.3 => not found

sudo ln -sf /usr/local/openssl-3.3.2/lib/libssl.so.3 /usr/lib64/libssl.so.3
sudo ln -sf /usr/local/openssl-3.3.2/lib/libcrypto.so.3 /usr/lib64/libcrypto.so.3

更新动态链接器缓存

sudo ldconfig
openssl version

完成!

——————————————————————————————————————————————

联动上篇openssh升级,如果不采用rpm安装的,可以编译升级openssh


./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl-3.3.2 --with-zlib --with-pam
make && make install
chmod 600 /etc/ssh/*
systemctl restart  sshd

其他问题记录:

执行ssh-V 依旧是原版本,说明ssh文件未覆盖安装,可以在make install之前,mv或者rm /usr/sbin/sshd、/usr/bin/ssh、/usr/bin/ssh-keygen,如果安装在其他目录的,可以cp文件过去

cp /home/openssh-9.9p1/contrib/redhat/sshd.init /etc/init.d/sshd
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen

安装后无法连接,可以检查selinux是否关闭,执行setforce 0 如果可以连接了,那说明selinux未关闭,永久关闭可以修改/etc/selinux/config,将SELINUX设置为disabled

OpenSSH安全漏洞,升级openssh版本

更新版本到openssh9.7

一、下载openssh9.7

下载rpm包,集成所有依赖,不建议下载自编译的,麻烦,容易出问题

二、将下载好的包上传到服务器

三、备份
cd /etc/ssh/
cp sshd_config sshd_config.bak

或直接执行:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

四、解压

解压命令:unzip openssh-9.7p1.zip

五、解压后如下

[root@10-7-163-190 openssh9.7p1]# ll
总用量 15476
-rw-r–r– 1 root root 5144416 3月 15 2024 openssh-9.7p1-1.el7.x86_64.rpm
-rw-r–r– 1 root root 5201872 3月 15 2024 openssh-clients-9.7p1-1.el7.x86_64.rpm
-rw-r–r– 1 root root 3963844 3月 15 2024 openssh-debuginfo-9.7p1-1.el7.x86_64.rpm
-rw-r–r– 1 root root 1532388 3月 15 2024 openssh-server-9.7p1-1.el7.x86_64.rpm


六、删除原版本

yum remove openssh*
七、进入解压包目录下,升级openssh版本到9.7

rpm -Uvh openssh-*.rpm


八、重新授权

chmod 600 /etc/ssh/ssh_host*

修改/etc/ssh/sshd_config文件

PermitRootLogin yes

PasswordAuthentication yes

ChallengeResponseAuthentication no

UsePAM yes


九、重启ssh

systemctl restart sshd


十、新开一个窗口访问该服务器,别直接关了,万一有问题ssh无法连接就麻烦了,看是否可以正常链接与登录,登录后并查看openssh版本已经是最新了

[root@10-7-163-190 openssh9.7p1]# ssh -V
OpenSSH_9.7p1, OpenSSL 1.1.1w 11 Sep 2023


升级完毕!

稳定翻墙梯子,VPN,晚高峰稳定4K

推荐三个机场梯子,都是自用测试过比较稳定的机场

机场折扣码,机场优惠券,pilor折扣券,pilor优惠券,SSRDOG折扣券,SSRDOG优惠券

1、平民廉价机场

派乐机场,pilor机场

价格亲民,一年169.99,高级版本279.99,乍一看不便宜,实际上常年提供6-7折优惠码,折合一年不过100出头,非常划算,节点也比较多,晚高峰基本保持300M以上,因为服务器原因和使用人数上升,会出现时不时维护的情况

点击前往官网

2、进阶机场(强烈推荐)

SSRDOG,采用IPCL专线,晚高峰油管4K无压力,价格略贵,轻量一年350元,标准490元,重点是这个机场支持按流量购买,500G一年只需要220元,用的不多的可以按量购买

目前也在促销中,一年只需要240元,且新用户打9折,需要晚高峰畅享4K的,直接上车

点击前往官网

3、适中机场

如果需要稳定性,又要兼顾费用,建议考虑这个机场:东方网络

该机场封闭了将近2年不开放注册,现在已经可以注册了,而且注册邀请制,一枚邀请码1元,UP自费了100元,给有需要的小伙伴

该机场使用请选择专线线路,稳定有保障,费用一年200元,配合6-8折常年折扣,可以做到最低120一年,属于非常划算的机场了,因为用的人也不多,不打广告,不会出现特别拥挤的情况,也是不错的一个老牌机场了

点击前往官网