參考鏈接 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