1、关闭selinux! 不然登录上去会导致启动bash、zsh失败

查看启用状态

[root@localhost opt]# getenforce 
Enforcing

setenforce 0 临时关闭

vim /etc/selinux/config 下次开机生效

SELINUX=disabled

2、升级openssl

openssh9.7 需要 1.1.1 版本的ssl
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz

编译到一个目录

tar zxvf openssl-1.1.1w.tar.gz
./config --prefix=/opt/openssl
make && make install 

备份并关联新的

mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /opt/openssl/bin/openssl /usr/bin/openssl

加上依赖

ln -s /opt/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /opt/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

如果文件重复了,删掉在执行ln

rm /usr/lib64/libssl.so.1.1
rm /usr/lib64/libcrypto.so.1.1

加上库依赖
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64/etc/profile
source /etc/profile 生效

3、 安装openssh

configure 的参数比较重要

wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz
tar zxvf openssh-9.7p1.tar.gz
./configure --prefix=/opt/openssh-9.7p1 --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/opt/data/soft/openssl-1.1.1w --with-md5-passwords
make && make install 

更改service文件到新的ssh目录。vim /etc/systemd/system/ssh9.service

[Unit]
excerpt=OpenSSH 9 server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=simple
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/opt/openssh-9.7p1/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

打开root登录配置,编辑/etc/ssh/sshd_config

PermitRootLogin yes

systemctl daemon-reload
systemctl restart ssh9

使用别的服务器ssh客户端连接一下看是不是已经生效。

如果出现/bin/zsh:Permission Deniel之类的报错,可能是selinux没关。

如果出现密码错误,确认没输入错的情况下可能是sshd_config配置限制了root登录或密码登录。