CentOS7更新OpenSSH8

問題

須要將CentOS7上面對OpenSSH更新到最新版本8,可是yum最新版本並非OpenSSH版本。這裏只能手動安裝OpenSSH版本了。html

解決

查看操做系統版本號:linux

[root@study ~]# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)

查看就舊版本號:ubuntu

[root@study ~]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017
[root@study ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

使用yum升級到yum裏面到最新版本:vim

yum -y install openssl
[root@study ~]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017
yum -y install openssh
[root@study ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

openssl

下載openssl源碼:centos

wget https://www.openssl.org/source/openssl-1.0.2s.tar.gz

解壓openssl源碼:bash

tar zxvf openssl-1.0.2s.tar.gz

檢查現已經安裝到openssl:ssh

[root@study ~]# openssl version -a
OpenSSL 1.0.2k-fips  26 Jan 2017
built on: reproducible build, date unspecified
platform: linux-x86_64
options:  bn(64,64) md2(int) rc4(16x,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 -DKRB5_MIT -m64 -DL_ENDIAN -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
OPENSSLDIR: "/etc/pki/tls"
engines:  rdrand dynamic

配置openssl源碼編譯:ide

cd openssl-1.0.2s/
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make
make test
sudo make install

配置庫:ui

sudo vim /etc/ld.so.conf.d/openssl-1.0.2s.conf
/usr/local/openssl/lib

驗證庫:centos7

sudo ldconfig -v

覆蓋安裝openssl

備份openssl:

cp /usr/bin/openssl /usr/bin/openssl_bk

安裝openssl(這個步驟不能被中斷):

ln -bs /usr/local/openssl/bin/openssl /usr/bin/openssl

驗證openssl:

openssl version -a
OpenSSL 1.0.2s  28 May 2019
built on: reproducible build, date unspecified
platform: linux-x86_64
options:  bn(64,64) rc4(16x,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 -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
OPENSSLDIR: "/usr/local/openssl"

openssl依賴問題

# fatal error: zlib.h: No such file or directory
yum -y install zlib-devel

openssh

查看舊版本:

[root@study ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

下載openssh源碼:

wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz

解壓openssh源碼:

tar zxvf openssh-8.0p1.tar.gz

備份舊的openssh:

cp /usr/bin/ssh /usr/bin/ssh_bk
cp -a /etc/ssh /etc/ssh_bk

修改OpenSSH版本名稱:

cd openssh-8.0p1/
vim version.h

將下面一行:

#define SSH_VERSION     "OpenSSH_8.0"

修改爲以下:

#define SSH_VERSION     "HN"

編譯配置openssh源碼:

./configure --prefix=/usr/local/openssh --with-pam --with-selinux --with-zlib --sysconfdir=/etc/ssh --with-kerberos5=/usr/lib64/libkrb5.so --with-ssl-dir=/usr/local/openssl
make
# 增強權限:
chmod 0600 /etc/ssh/ssh_host*_key
make install

修改root遠程登陸:

vim /etc/ssh/sshd_config
PermitRootLogin yes

查看當前sshd服務:

[root@study openssh-8.0p1]# systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since 二 2019-07-16 09:57:03 CST; 28min ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1067 (sshd)
   CGroup: /system.slice/sshd.service
           └─1067 /usr/sbin/sshd -D

7月 16 09:57:03 study.centos.zyl sshd[1067]: Server listening on :: port 22.
7月 16 09:57:03 study.centos.zyl systemd[1]: Started OpenSSH server daemon.
7月 16 09:58:06 study.centos.zyl sshd[1578]: Accepted password for root from 10.211.55.2 port 61084 ssh2
7月 16 09:58:18 study.centos.zyl sshd[1629]: Accepted password for zhangyalin from 10.211.55.2 port 61085 ssh2
7月 16 09:59:33 study.centos.zyl sshd[1734]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.211.55.2  user=root
7月 16 09:59:33 study.centos.zyl sshd[1734]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
7月 16 09:59:35 study.centos.zyl sshd[1734]: Failed password for root from 10.211.55.2 port 52849 ssh2
7月 16 09:59:40 study.centos.zyl sshd[1734]: Accepted password for root from 10.211.55.2 port 52849 ssh2
7月 16 10:09:16 study.centos.zyl sshd[15747]: Accepted password for root from 10.211.55.2 port 53171 ssh2
7月 16 10:12:17 study.centos.zyl sshd[24702]: Accepted password for root from 10.211.55.2 port 53313 ssh2

修改sshd服務配置文件: 備份sshd服務配置文件

cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service_bk

修改sshd服務配置文件夾:

vim /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
#Type=notify
EnvironmentFile=/etc/sysconfig/sshd
#ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecStart=/usr/local/openssh/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

重啓服務:

systemctl daemon-reload

重啓sshd服務:

systemctl restart sshd

檢查sshd服務:

systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since 二 2019-07-16 10:32:07 CST; 24s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 13093 (sshd)
   CGroup: /system.slice/sshd.service
           └─13093 /usr/local/openssh/sbin/sshd -D

7月 16 10:32:07 study.centos.zyl systemd[1]: Started OpenSSH server daemon.
7月 16 10:32:07 study.centos.zyl systemd[1]: Starting OpenSSH server daemon...
7月 16 10:32:07 study.centos.zyl sshd[13093]: Server listening on 0.0.0.0 port 22.
7月 16 10:32:07 study.centos.zyl sshd[13093]: Server listening on :: port 22.

嘗試訪問:

[root@study ~]# ssh root@127.0.0.1
root@127.0.0.1's password:
Last login: Tue Jul 16 10:28:49 2019 from 127.0.0.1
/bin/bash: Permission denied
Connection to 127.0.0.1 closed.

設置SELinux權限:

ausearch -c 'sshd' --raw | audit2allow -M my-sshd
semodule -i my-sshd.pp

這樣就openssh就安裝完成了。

openssh依賴問題

# cc: error: unrecognized command line option '-V'
yum install -y openssl-devel
# configure: error: PAM headers not found
yum install -y pam-devel

參考:

相關文章
相關標籤/搜索