須要將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源碼: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:
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"
# fatal error: zlib.h: No such file or directory yum -y install zlib-devel
查看舊版本:
[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就安裝完成了。
# cc: error: unrecognized command line option '-V' yum install -y openssl-devel # configure: error: PAM headers not found yum install -y pam-devel