参考链接 https://www.cnblogs.com/chillax1314/p/13858655.html
下载安装包
zlib-1.2.11.tar.gz 下载地址:http://www.zlib.net/zlib-1.2.11.tar.gz 也可以直接下载:wget http://www.zlib.net/zlib-1.2.11.tar.gz
openssl-1.1.1h.tar.gz 下载地址:https://www.openssl.org/source/openssl-1.1.1h.tar.gz 也可以直接下载:wget https://www.openssl.org/source/openssl-1.1.1h.tar.gz
openssh-8.4p1.tar.gz 下载地址:http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz 也可以直接下载:wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz
一 . 解压
tar xf openssh-8.4p1.tar.gz -C
tar xf zlib-1.2.11.tar.gz -C
tar xf openssl-1.1.1h.tar.gz -C
二.2.1 安装 zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib && make -j 4 && make install
2.2 安装 openssl-1.1.1h.
cd /usr/local/src/openssl-1.1.1h/
./config --prefix=/usr/local/ssl -d shared
make -j 4 && make install
echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
ldconfig -v
注意:安装完成后去 cd /usr/local/ 看看 是否有zlib 目录和openssl
2个目录都有情况下在进行下面的操作。
三.安装openssh-8.4p1
cd openssh-8.4p1
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl --with-zlib=/usr/local/zlib
make -j 4 && make install (注意:如果这一步报错 是因为./ configure这一步报错,需要查看提示的错误信息一般错误信息为configure: error: *** working libcrypto not found, check config.log ***)
三 sshd_config文件修改
echo "UseDNS no" >> /etc/ssh/sshd_config //指定 sshd(8) 是否应该对远程主机名进行反向解析,以检查此主机名是否与其IP地址真实对应。默认值为"yes"。
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config //是否允许 root 登入
echo 'PubkeyAuthentication yes' >> /etc/ssh/sshd_config //是否允许 Public Key
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config //是否需要密码验证
这个时候应该可以用ssh-V 命令查看版本信息了。不过会显示是7.4P 版
四 备份 /etc/ssh 原有文件,并将新的配置复制到指定目录
mv /usr/sbin/sshd /usr/sbin/sshd.bak
cp -rf /usr/local/openssh/sbin/sshd /usr/sbin/sshd
mv /usr/bin/ssh /usr/bin/ssh.bak
cp -rf /usr/local/openssh/bin/ssh /usr/bin/ssh
下面的2步报错可以直接跳过
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp -rf /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
ssh -V 查看版本信息 会显示8.4版
五 启动 sshd
systemctl start sshd
启动失败的话 请用 ssh -t 检查 会有错误提示,一般是配置文件没配对 按照错误信息提示修改。
直接systemctl start sshd,启动不起来,报错,但用sshd -t检查也没有啥错误,就提示timeout
问题解决:先停掉sshd服务,将systemctl原服务器删除,使用安装包里自带的sshd.init,复制到/etc/init.d/sshd,重启即可
systemctl stop sshd.service
rm -rf /lib/systemd/system/sshd.service systemctl daemon-reload cp /usr/local/src/openssh-8.4p1/contrib/redhat/sshd.init /etc/init.d/sshd /etc/init.d/sshd restart systemctl status sshd
启动不起来,可以使用/etc/init.d/sshd restart重启即可
添加开机启动
chkconfig --add sshd
chkconfig --list sshd