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登录或密码登录。