centos7 openssh升級到最新版本

注意事項

本文的環境都是系統自帶的openssh,如果手動編譯安裝的,不保證成功。如果自帶的,則升級過程當中不須要卸載舊版本openssh。linux

安裝以前能夠先試試yum更新,如果能夠更新,就不須要往下看了shell

# centos8 
$ yum update openssh -y
# 重啓sshd
$ systemctl restart sshd

準備工做

系統說明

  • 系統版本:CentOS Linux release 7.7.1908 (Core)
  • openssh:OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
  • openssl: OpenSSL 1.0.2k-fips 26 Jan 2017

下載最新包

本文選擇的是:
openssh-8.2p1.tar.gz
openssl-1.1.1g.tar.gzvim

$ wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.2p1.tar.gz

$ wget https://ftp.openssl.org/source/openssl-1.1.1g.tar.gz

安裝telnet備用(可選)

安裝新的ssh以後,只要配置好啓動,就能夠作到無縫切換,可是中途斷開就不能鏈接了,爲了防止這種狀況,咱們能夠安裝telnet看成備用,如果你能保證中途不會斷開,此步驟能夠忽略centos

1.安裝ssh

$ yum install telnet telnet-server -y

2.啓動socket

$ systemctl enable telnet.socket
$ systemctl start telnet.socket

3.鏈接測試

# telnet 默認禁止root用戶鏈接,咱們先生成一個普通用戶 
$ useradd testuser
$ passwd testuser

# 本地測試
$ telnet 127.0.0.1
VM_0_6_centos login: testuser
Password: 
[testuser@VM_0_6_centos ~]$ 
# 切換root
[testuser@VM_0_6_centos ~]$ su

升級openssl

備份

$ mv /usr/bin/openssl /usr/bin/openssl_old

安裝

$ tar xzvf openssl-1.1.1g.tar.gz
$ cd openssl-1.1.1g/
$ ./config shared && make && make install

配置軟鏈接

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

若是執行openssl version報下面的錯誤rest

openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

則執行下面命令解決:code

$ ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/
$ ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/

舊版本:server

$ openssl_old version
OpenSSL 1.0.2k-fips  26 Jan 2017

升級openssh

安裝所需依賴

$ yum install zlib-devel  openssl-devel  pam-devel -y

備份

$ mkdir /etc/ssh_old
$ mv /etc/ssh/* /etc/ssh_old/

解壓、編譯安裝

$ tar xzvf openssh-8.2p1.tar.gz 
$ cd openssh-8.2p1/

$ ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/lib64/ --with-zlib --with-pam --with-md5-password --with-ssl-engine --with-selinux

# 安裝
$ make && make install

# 驗證
$  ssh -V
OpenSSH_8.2p1, OpenSSL 1.1.1g  21 Apr 2020

$ ls /etc/ssh
moduli  ssh_config  sshd_config  ssh_host_dsa_key  ssh_host_dsa_key.pub  ssh_host_ecdsa_key  ssh_host_ecdsa_key.pub  ssh_host_ed25519_key  ssh_host_ed25519_key.pub  ssh_host_rsa_key  ssh_host_rsa_key.pub

配置

1.修改sshd_config

$ vim /etc/ssh/sshd_config

# 例子:配置root登陸,   根據你之前的配置來
PermitRootLogin yes

2.啓動

# 移走之前的ssh服務, 防止與新的衝突
$ mv /usr/lib/systemd/system/sshd.service /etc/ssh_old/sshd.service
$ mv /usr/lib/systemd/system/sshd.socket /etc/ssh_old/sshd.socket

# 在解壓包中拷貝一些文件
$ cp -a contrib/redhat/sshd.init /etc/init.d/sshd



# 從新啓動
$ /etc/init.d/sshd restart
$ systemctl daemon-reload

# 添加自啓動
$ chkconfig --add sshd
$ chkconfig sshd on
相關文章
相關標籤/搜索