centos 6.7 openssh 升級到openssh 7.1p

openssh 升級主要解決:

OpenSSH(OpenBSD Secure Shell)是OpenBSD計劃組所維護的一套用於安全訪問遠程計算機的連接工具。該工具是SSH協議的開源實現,支持對所有的傳輸進行加密,可有效阻止竊聽、連接劫持以及其他網絡級的***。
OpenSSH 6.8版本和6.9版本的sshd中存在安全漏洞,該漏洞源於程序爲TTY設備分配全局可寫權限。本地***者可通過寫入設備利用該漏洞造成拒絕服務(終端中斷)。



openssh 簡介:

1、OpenSSH 是SSH(Secure SHell) 協議的免費開源實現。SSH協議族可以用來進行遠程控制, 或在計算機之間傳送文。而實現此功能的傳統方式,如telnet(終端仿真協議)、 rcp ftp、 rlogin、rsh都是極爲不安全的,並且會使用明文傳送密碼。OpenSSH提供了服務端後臺程序和客戶端工具,用來加密遠程控件和文件傳輸過程中的數據,並由此來代替原來的類似服務。

2、OpenSSH是使用SSH透過計算機網絡加密通訊的實現。它是取代由SSH Communications Security所提供的商用版本的開放源代碼方案。目前OpenSSH是OpenBSD的子計劃。

3、OpenSSH常常被誤認以爲與OpenSSL有關聯,但實際上這兩個計劃的有不同的目的,不同的發展團隊,名稱相近只是因爲兩者有同樣的軟件發展目標──提供開放源代碼的加密通訊軟件。

openssh

1、OpenSSH服務,sshd,是一個典型的獨立守護進程(standalone daemon),但也可以根據需要通過網絡守護進

程(Internet Daemon)-inetd(注3)或Ineternet Daemon's more modern-xinted(注4)加載。OpenSSH服務可以通過/etc/ssh/sshd_config文件進行配置。

環境部署:

時間同步

[root@localhost ~]#\cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  -rf
               echo '*/5 * * * * /usr/sbin/ntpdate ntp.sjtu.edu.cn' >> /var/spool/cron/root
                echo 'TIMEZONE="Asia/Shanghai"' > /etc/sysconfig/clock  

                /usr/sbin/ntpdate ntp.sjtu.edu.cn

創建軟件存放目錄

[root@localhost ~]# mkdir /home/softwares
軟件包下載鏈路

[root@localhost softwares]# wget  ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.1p1.tar.gz
[root@localhost softwares]# wget   http://www.openssl.org/source/openssl-1.0.1s.tar.gz
[root@localhost softwares]# wget   https://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.gz

關閉防火牆或者selinux

openssh 程序升級

1、停止 SSHD  服務

[root@localhost ~]# /sbin/service sshd stop

2、備份啓動腳本

[root@localhost ~]# cp /etc/init.d/sshd  /root/

3、卸載系統裏原有Openssh

[root@localhost softwares]# rpm -qa  openssh    ##查詢系統原安裝的openssh包全部卸載。

[root@localhost softwares]# rpm -e openssh --nodeps
[root@localhost softwares]# rpm -e openssh-server --nodeps 
[root@localhost softwares]# rpm -e openssh-clients --nodeps

4、解壓安裝zlib包:

[root@localhost softwares]# tar -zxvf zlib-1.2.8.tar.gz -C /usr/local/ #首先安裝zlib庫,否則會報zlib.c錯誤無法進行
#cd zlib-1.2.8 [root@localhost softwares]# cd /usr/local/zlib-1.2.8/

[root@localhost zlib-1.2.8]# ./configure

[root@localhost zlib-1.2.8]#make&&make install

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++這一步要是實際的版本是否安裝,本人的版本時openssl-1.0.1e 所以不用安裝,如果比1.0.1 版本底則需要安裝+++

解壓安裝openssl包:                                                                         

#tar-zxvfopenssl-1.0.1p.tar.gz                                                                 
#cd openssl-1.0.1p                                                                             
#./config shared zlib                                                                          
#make                                                                                          
#make test                                                                                     
#make install                                                                                  
#mv /usr/bin/openssl /usr/bin/openssl.OFF                                                      
#mv /usr/include/openssl /usr/include/openssl.OFF ##該步驟可能提示無文件,忽略即可             
#ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl                                             
#ln -s /usr/local/ssl/include/openssl /usr/include/openssl ##移走原先系統自帶的                
openssl                                                                                        

將自己編譯產生的新文件進行鏈接。                                                        


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

5、配置庫文件搜索路徑                                                                        
[root@localhost softwares]# openssl version -a
OpenSSL 1.0.1m 19 Mar 2015                                                                     
built on: Sat Mar 21 04:11:47 2015                                                             
platform: linux-x86_64                                                                         
options:  bn(64,64) rc4(8x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)                   
compiler: gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS              
-D_REENTRANT  -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O3 -Wall           
 -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5  -DOPENSSL_BN_ASM_GF2m       
 -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM              
 -DWHIRLPOOL_ASM -DGHASH_ASM                                                                   

OPENSSLDIR: "/usr/local/ssl      


6、解壓安裝openssh包:

先將將/etc/ssh的文件夾備份:
#mv/etc/ssh /etc/ssh_bak
[root@localhost softwares]#  tar -zxvf openssh-7.1p1.tar.gz  -C /usr/local/
[root@localhost softwares]# cd /usr/local/openssh-7.1p1/

[root@localhost openssh-7.1p1]#  ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-ssl-dir=/usr/local/ssl --with-md5-passwords --mandir=/usr/share/man

[root@localhost openssh-7.1p1]# make && make install
[root@localhost openssh-7.1p1]# ssh -V
OpenSSH_7.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

 

7、啓動調試ssh
[root@localhost openssh-7.1p1]# /usr/sbin/sshd -d
debug1: sshd version OpenSSH_7.1, OpenSSL 1.0.1m 19 Mar 2015
debug1: private host key #0: ssh-rsa
SHA256:EqDJvZiq8JgG+nG/xsmZ6yrd3B+OoulgE5GhzSZcJHg
debug1: private host key #1: ssh-dss
SHA256:AmqP8tvvqy3t1dSy1P4ETqh8Poma40PmzDpTtipVIqQ
debug1: private host key #2: ecdsa-sha2-nistp256
SHA256:sebvQl7OXvlFsbBy9zuUYPwWfqJm47qYBi/IIcEA8Jk
debug1: private host key #3: ssh-ed25519
SHA256:niy1XbgnrydgeFXfMqVjkfRbUlZ4YeFsWof2cWoCBWc
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-d'
Set /proc/self/oom_score_adj from 0 to -1000
debug1: Bind to port 22 on 0.0.0.0.
Bind to port 22 on 0.0.0.0 failed: Address already in use.
debug1: Bind to port 22 on ::.
Bind to port 22 on :: failed: Address already in use.
Cannot bind any address.
8、啓動服務
[root@localhost openssh-7.1p1]# cp -p contrib/redhat/sshd.init /etc/init.d/sshd
//其他版本操作系統具體查看contrib對應目錄和readme。
[root@localhost openssh-7.1p1]# chmod +x /etc/init.d/sshd
[root@localhost openssh-7.1p1]# chkconfig --add sshd
[root@localhost openssh-7.1p1]# cp sshd_config /etc/ssh/sshd_config  (如提示覆蓋,yes回車)
[root@localhost openssh-7.1p1]# cp sshd /usr/sbin/sshd   (如提示覆蓋,yes回車)
9、驗證是否成功
[root@localhost openssh-7.1p1]service  sshd  start
[root@localhost openssh-7.1p1]ssh -V
OpenSSH_7.1p1, OpenSSL 1.0.1m 19 Mar 2015
此時可以嘗試遠程 ssh進去服務器,如果能連,並查看驗證日誌信息等確認無誤。
查看ssh服務狀態://以下配置redhat略有不同,具體情況具體解決。
[root@localhost openssh-7.1p1]# /etc/init.d/sshd status
連接正常。

+++++++++++++++++++++++++++++++++++++++++++++++++
 

[root@localhost openssh-7.1p1]#service sshd start

啓動時候報錯
[root@localhost openssh-7.1p1]# /etc/init.d/sshd restart
Stopping sshd:                                             [確定]
/sbin/restorecon:  lstat(/etc/ssh/ssh_host_key.pub) failed:  No such file or directory
Starting sshd:                                             [確定]
需要把/etc/init.d/sshd裏面 #/sbin/restorecon /etc/ssh/ssh_host_key.pub 註銷
啓動sshd服務
[root@localhost openssh-7.1p1]service sshd start
 

成功
++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Checking for service sshd                                         

將下面改爲yes 這樣root 用戶登錄時不會再報而且root

 也可以登陸

[root@localhost openssh-7.1p1]#root@192.168.3.154's password:
Permission denied (publickey,password,keyboard-interactive)
# vi /etc/ssh/sshd_config
PermitRootLogin yes
 

++++++++++++++重啓機器之後需要重新拉起ssh 服務方可登陸

需要關閉selinux  和iptables 必須關閉 全都設置成開機自動關閉就可以登陸了,不然總是報沒有權限!





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章