centos7升級openssh至8.2包含openssl升級)源碼


首先打開telnet預防升級ssh不成功導致遠程連接無法使用

1、安裝telnet並開啟

yum -y install telnet-server telnet xinetd

配置telnet,xinetd必須設置開機自啟動不然無法啟動

systemctl enable xinetd

systemctl enable telnet.socker

systemctl enable telnet.socket

systemctl enable xinetd

2、設置允許root連接(默認不允許root連接)

主機端執行 tail -f /var/log/secure

客戶端 telnet連接輸入用戶名:root

主機跳出信息如截圖

 

 

 這個pts/2(請根據彈出信息靈活修改)就是登錄需要開放的,需要在/etc/securetty里面添加pts/2,即可使用root正常連接。

開始升級源碼openssh,本人使用了三個版本的源碼包,包括openssh-8.2p1.tar.gz、

openssl-1.1.1g.tar.gz、zlib-1.2.11.tar.gz


1、安裝gcc、make命令

yum -y install gcc make

2、解壓進入開始編譯安裝三個軟件

tar zxvf openssh-8.2p1.tar.gz

tar zxvf openssl-1.1.1g.tar.gz

tar zxvf zlib-1.2.11.tar.gz

cd zlib-1.2.11./configure --prefix=/usr/local/zlib

make && make install

cd ../openssl-1.1.1g

./config --prefix=/usr/local/ssl -d shared

#默認沒有編譯出.so的文件,而openssh編譯的時候需要,所以需要手動添加 -d shared的選項

make && make install

echo '/usr/local/ssl/lib' >> /etc/ld.so.conf

ldconfig -v

cd ../openssh-8.2p1

./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl

make && make install

如果是采用root用戶登錄需要,修改openssh的配置文件 /usr/local/openssh/etc/sshd_config(取消PermitRootLogin注釋並改為yes)

3、關掉舊的ssh啟動新的ssh

ps -ef|grep sshd 直接殺死 /usr/bin/sshd的進程號

再/usr/local/openssh/sbin/sshd啟動新的ssh

4、替換/bin下的ssh為新版的ssh

mv /usr/bin/ssh /usr/bin/ssh_bak

cp /usr/local/openssh/bin/ssh /usr/bin

此時執行ssh -V即可查看現有ssh和ssl版本。

5、替換/sbin下的sshd方便開機自動啟動

mv /usr/sbin/sshd /usr/sbin/sshd_bak

cp /usr/local/openssh/sbin/sshd /usr/sbin/

6、替換openssl命令

mv /usr/bin/openssl /usr/bin/openssl_bak

cp /usr/local/ssl/bin/openssl /usr/bin/

7.打開新的ssh服務開機自啟動

cp -p contrib/redhat/sshd.init /etc/init.d/sshd 

sshd.init  在/usr/local/openssh-8.2p1/contrib/redhat/sshd.init(解壓路徑下)

升級遇到過的問題


1、如果按照我的流程走一般不會有問題,但是如果例如未在ssl編譯處添加 -d share openssh編譯容易報以下錯誤

 

 此時為缺少openssl的動態庫可以通過yum -y install openssl-devel 解決,安裝過后編譯就不需要指定openssl的具體路徑了,指定至上一級即可(ssh就直接使用了yum的ssl不用源碼)

2、還有編譯openssl遇到缺少類似perl包的報錯,一般直接yum裝一下即可解決。

最后記得關掉你的telnet並取消開機自啟動(明文傳輸不安全)

 


免責聲明!

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



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