Centos6.5 升級Openssl + Openssh


xu言:

  平時很懶,都不想寫blog。今天(2018.05.15)開始嘗試每天寫一篇吧,看我自己能堅持多久!

准備工作:

為了防止在操作過程中導致ssh遠程中斷,首先安裝一個telnet-server服務

yum install -y telnet-server

chkconfig telnet on   # 前提是啟動了  chkconfig --list |grep "xinetd" 

通過chkconfig --list 查看是否開啟

這里開啟后telnet 狀態是 on

Note: 開啟后記得在防火牆里面添加23端口,不然...呵呵,你懂的

 然后,在外面用你自己的遠程工具使用telnet進行測試,測試成功后開始進行升級工作。

 

所需相關軟件包資源匯總:

zlib

http://www.zlib.net/

pam

http://mirror.centos.org/centos/6/os/x86_64/Packages/pam-devel-1.1.1-24.el6.x86_64.rpm

openssl

http://www.openssl.org/source/

openssh

http://www.openssh.com/

 

源碼安裝步驟:

zlib 安裝

tar xf zlib-1.2.11.tar.gz

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

 make && make install  # 如果是非root用戶自己加sudo

 

pam 安裝

 rpm -ivh pam-devel-1.1.1-24.el6.x86_64.rpm --nodeps # 不檢查依賴關系直接安裝

 

 OpenSSL 安裝(版本根據實際情況下載,這里演示用1.01g版本)

tar zxf openssl-1.0.1g.tar.gz

cd openssl-1.0.1g

./config --prefix=/usr/local/openssl --shared

make  && make install

mv /usr/bin/openssl /usr/bin/openssl.bak  

mv /usr/include/openssl /usr/include/openssl.bak 

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl  

ln -s /usr/local/openssl/include/openssl /usr/include/openssl  

echo "/usr/local/openssl/lib" >>/etc/ld.so.conf  

驗證結果:

ldconfig -v  

openssl version -a  

 

 

 

 

OpenSSH 安裝

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/zlib --with-md5-passwords --with-pam

make && make install

 

# 復制配置文件
cp ssh_config /etc/ssh/
cp sshd_config /etc/ssh/
cp moduli /etc/ssh/

 

# 復制啟動腳本到/etc/init.d
# 根據安裝路徑情況,可能需要修改啟動腳本中sshd的路徑
cp contrib/redhat/sshd.init /etc/init.d/sshd
/usr/sbin/sshd -t -f /etc/ssh/sshd_config

# 加入開機自啟
chkconfig --add sshd
chkconfig sshd on
chkconfig sshd --list

 

# 開啟SSH服務
# 不推薦restart。使用restart會造成連不上,需要登錄控制台啟動。(如果restart了,不能ssh后。可以使用telnet方式處理)
/etc/init.d/sshd start  # 啟動服務

 

最后,進行一些收尾工作

chkconfig telent off   # 關閉telnet

sudo rpm -e telnet-server-0.17-48.el6.x86_64 --nodeps  # 卸載telnet相關rpm包

 

 

遇到問題:

報錯一:
libssl.so.10: cannot open shared object file: No such file or directory

解決方案:
cd /usr/lib64(如果是32位系統路徑則是/usr/lib)
尋找libssl.so* 和 libcrypto.so*
ll /usr/lib64/libssl.so*

ll /usr/lib64/libcrypto.so*

創建軟鏈接
ln -s /usr/lib64/libssl.so.1.0.0 libssl.so.10
ln -s /usr/lib64/libcrypto.so.1.0.0 libcrypto.so.10

報錯二: 
編譯安裝openssl報錯:POD document had syntax errors at /usr/bin/pod2man line 69. make: *** [install_docs]
mv /usr/binpod2man{,.bak}
   
報錯三:
OpenSSL headers missing - please install first or check config.log ***
yum install openssl-devel

   *** zlib.h missing - please install first or check config.log ***

yum install zlib-devel

錯誤四:

提示給予的文件權限太高不安全,把指定的key文件給予700即可



Sum:
1.因為遇到了openssl 和openssh 不一致的問題,才發現有順序問題。所以使用源碼進行重新編譯。先openssl,再 openssh
2.操作前一定開啟telnet以防萬一,小心使得萬年船。特別是生產環境下面
3.不同環境下面操作可能會遇到一些新的問題。但是,仔細閱讀報錯代碼也是一種學習過程

 



參考資料:

http://www.heminjie.com/system/linux/1766.html  

https://www.jianshu.com/p/8c66fdab0c1f

http://blog.sina.com.cn/s/blog_60bf8fe90101715h.html

https://pkgs.org/  # rpm包下載


免責聲明!

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



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