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 必須關閉 全都設置成開機自動關閉就可以登陸了,不然總是報沒有權限!