CentOS7更新OpenSSH8

问题

需要将CentOS7上面对OpenSSH更新到最新版本8,但是yum最新版本并不是OpenSSH版本。这里只能手动安装OpenSSH版本了。

解决

查看操作系统版本号:

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

查看就旧版本号:

[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里面到最新版本:

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源码:

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

解压openssl源码:

tar zxvf openssl-1.0.2s.tar.gz

检查现已经安装到openssl:

[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源码编译:

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

配置库:

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

验证库:

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

参考:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值