編譯安裝升級openssh最新版


安裝環境

系統版本:Centos7 mini

安裝步驟

  1. 依賴包安裝
  2. 卸載原有openssh
  3. 下載openssh編譯包
  4. 編譯安裝openssh
  5. 修改配置
  6. 設置openssh自啟

安裝操作

# 安裝依賴包,因此系統最小化安裝所以我就一股腦的將開發套件都給裝上了
yum groupinstall "Development Tools"  -y
#如果不想一股腦把整個套件安裝上的可以使用下面的命令
#yum install openssl-devel  zlib-devel perl gcc pam-devel
# 備份原來ssh的配置,備用
cp -r /etc/sysconfig/sshd /etc/sysconfig/sshd.bak
cp -r /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak
cp -r /usr/lib/systemd/system/sshd.socket /usr/lib/systemd/system/sshd.socket.bak
cp -r /usr/lib/systemd/system/sshd@.service /usr/lib/systemd/system/sshd@.service.bak
cp -r /usr/lib/systemd/system/sshd-keygen.service /usr/lib/systemd/system/sshd-keygen.service.bak
cp -r /etc/ssh /etc/ssh.bak
# 卸載系統預裝的openssh,先查詢,然后卸載
rpm -qa | grep openssl
openssh-7.4p1-21.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64
yum remove openssh-clients openssh-server openssh
# 下載openssh安裝包
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz
# 刪除原有配置文件,上面已經備份了所以放心上,建議采用mv命令
mv /etc/ssh  /tmp
#  解壓壓縮包
tar xvf openssh-8.6p1.tar.gz
# 編譯安裝
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh    --with-zlib   --with-md5-passwords   --with-pam   --with-ssl-engine
make && make install
# 創建軟鏈接
ln -s /usr/local/openssh/sbin/sshd /sbin/sshd
ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh
ln -s /usr/local/openssh/bin/ssh-add /usr/bin/ssh-add
ln -s /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
ln -s /usr/local/openssh/bin/ssh-keyscan /usr/bin/ssh-keyscan
# 恢復剛剛備份的配置文件
mv /etc/sysconfig/sshd.bak /etc/sysconfig/sshd
mv /usr/lib/systemd/system/sshd.service.bak /usr/lib/systemd/system/sshd.service
mv /usr/lib/systemd/system/sshd.socket.bak /usr/lib/systemd/system/sshd.socket
mv /usr/lib/systemd/system/sshd@.service.bak /usr/lib/systemd/system/sshd@.service
mv /usr/lib/systemd/system/sshd-keygen.service.bak /usr/lib/systemd/system/sshd-keygen.service
# 檢查現在的ssh版本
ssh -V
# 修改默認配置,允許root登錄
vi /etc/ssh/sshd_config
#將 #PermitRootLogin prohibit-password 修改為 PermitRootLogin yes
# 將sshd服務設為開機啟動
chkconfig sshd on

安裝問題

問題描述1

在使用systemctl start sshd 命令啟動sshd服務會卡住,過一會顯示啟動超時,查詢狀態發現sshd服務啟動失敗。
但是,通過源碼包自帶的sshd.init 腳本文件可以正常的管理sshd服務的啟停。

解決方法1

# 將源碼安裝包中的opensshd.init文件復制到/etc/init.d/目錄下
cp opensshd.init /etc/init.d/sshd.init
# 授予可執行權限
chmod +x  /etc/init.d/sshd.init
# 然后修改sshd.service管理配置文件
vim /usr/lib/systemd/system/sshd.service
#如果里面有內容的那將內容清空,沒有的直接附上下面的配置即可
[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/rc.d/init.d/sshd.init
Description=SYSV: OpenSSH server daemon

[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/var/run/sshd.pid
ExecStart=/etc/rc.d/init.d/sshd.init start
ExecStop=/etc/rc.d/init.d/sshd.init stop
ExecReload=/etc/rc.d/init.d/sshd.init reload
#保存退出,然后運行下面的命令
systemctl daemon-reload
systemctl restart sshd

參考鏈接

問題描述2

在升級openssh編譯報錯“configure: error: *** working libcrypto not found, check config.log”

解決方法2

# 出現上面的報錯,是因為缺少openssl-devel包或者libcrypto相關庫不正確,我們直接安裝openssl-devel即可解決問題
yum install -y openssl-devel

參考鏈接

openssh安裝包下載地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM