升級前首先肯定當前openssh、openssl、zlib的版本,查看版本操做以下:node
[root@mysql ~]# ssh -V OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017 [root@mysql ~]# rpm -q zlib zlib-1.2.7-17.el7.x86_64
由此能夠看到當前openssh版本爲:7.4p1,openssl版本爲:1.02k-fips,zlibmysql
版本爲1.2.7。linux
到相應的官網下載最新版本sql
OpenSSH:https://cloudflare.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/vim
OpenSSL: https://www.openssl.org/source/ssh
zlib: https://www.openssl.org/source/ide
爲避免升級過程出現錯誤致使sshd服務掛掉,能夠先安裝telnet服務或者在機房方便處理故障。code
OpenSSL升級方法參考個人另外一篇文章https://blog.51cto.com/mading/2161246orm
注意:升級前請確認已安裝gcc編譯環境,關閉selinux,升級前作好備份。cdn
卸載老版本zlib
[root@mysql ~]# rpm -e --nodeps zlib
解壓編譯
[root@mysql ~]# tar -zxvf zlib-1.2.11.tar.gz [root@mysql ~]# cd zlib-1.2.11/ [root@mysql zlib-1.2.11]# ./configure --prefix=/usr/local/zlib [root@mysql zlib-1.2.11]# make test [root@mysql zlib-1.2.11]#make install
構建共享庫
[root@mysql zlib-1.2.11]#make clean [root@mysql zlib-1.2.11]#./configure --shared [root@mysql zlib-1.2.11]#make test [root@mysql zlib-1.2.11]#make install
卸載老版本openssh
[root@mysql ~]# rpm -e --nodeps openssh
解壓編譯
[root@mysql ~]# tar -zxvf openssh-8.0p1.tar.gz [root@mysql openssh-8.0p1]#./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-ssl-dir=/usr/local/ssl --with-privsep=path=/var/lib/sshd *注意:--with-zlib --with-ssl-dir的路徑爲編譯安裝openssl的路徑* [root@mysql openssh-8.0p1]#make && make install
編譯過程當中可能會出現各類各樣的錯誤,根據提示的錯誤信息找相應的解決辦法,這裏不作具體說明。
編譯完成後查看是否安裝成功
[root@mysql openssh-8.0p1]# ssh -V OpenSSH_8.0p1, OpenSSL 1.1.0k 28 May 2019
配置
[root@mysql openssh-8.0p1]# install -v -m755 contrib/ssh-copy-id /usr/bin/ "contrib/ssh-copy-id" -> "/usr/bin/ssh-copy-id" [root@mysql openssh-8.0p1]# install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1 "contrib/ssh-copy-id.1" -> "/usr/share/man/man1/ssh-copy-id.1" [root@mysql openssh-8.0p1]# install -v -m755 -d /usr/share/doc/openssh-8.0p1*注意:openssh-8.0p1根據具體的openssh版本號填寫* install: 正在建立目錄"/usr/share/doc/openssh-8.0p1" [root@mysql openssh-8.0p1]# install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-8.0p1 "INSTALL" -> "/usr/share/doc/openssh-8.0p1/INSTALL" "LICENCE" -> "/usr/share/doc/openssh-8.0p1/LICENCE" "OVERVIEW" -> "/usr/share/doc/openssh-8.0p1/OVERVIEW" "README" -> "/usr/share/doc/openssh-8.0p1/README" "README.dns" -> "/usr/share/doc/openssh-8.0p1/README.dns" "README.md" -> "/usr/share/doc/openssh-8.0p1/README.md" "README.platform" -> "/usr/share/doc/openssh-8.0p1/README.platform" "README.privsep" -> "/usr/share/doc/openssh-8.0p1/README.privsep" "README.tun" -> "/usr/share/doc/openssh-8.0p1/README.tun"
默認端口爲22,root默認不能遠程登陸,在/etc/ssh/sshd_config裏面添加"PermitRootLogin yes"
[root@mysql openssh-8.0p1]# vim /etc/ssh/sshd_config
配置sshd開機自啓
[root@mysql openssh-8.0p1]# cp -p contrib/redhat/sshd.init /etc/init.d/sshd [root@mysql openssh-8.0p1]# chmod a+x /etc/init.d/sshd [root@mysql openssh-8.0p1]# chkconfig --add sshd [root@mysql openssh-8.0p1]# chkconfig sshd on