CentOS 上升级OpenSSH8.2p1的正确方式是什么?
时间: 2020-05-24来源:博客园
前景提要
CentOS 上升级OpenSSH8.2p1的正确方式是什么?
0 悬赏园豆: 20 [待解决问题] 最近要升级CentOS(具体版本是CentOS6.4和CentOS7.6)上的OpenSSH,从默认的版本更新到OpenSSH 8.2。在网上查了很多相关的资料,大部分介绍的是通过编译OpenSSL和OpenSSH源码的方式。
第一步,OpenSSL 1.1.1d的更新过程还容易明白点儿,我编译时都用的默认的安装路径,即config时不带任何选项,这样安装路径默认为/usr/local;make和make install之后,echo '/usr/local/lib64'>>/etc/ld.so.conf,然后执行ldconfg,无需替换任何文件,openssl version显示为跟新的版本。
第二步,为了配合OpenSSH,按照网文的介绍,OpenSSL编译时需要config shared,即带一个shared选项,这样OpenSSH在configure时就不会找不到已安装的Openssl Library了。但是,我遇到的,相同的Linux环境,同样是编译OpenSSL时,config shared,但是在OpenSSH的configure阶段,还是会遇到下列情形:
checking OpenSSL header version... 1010100f (OpenSSL 1.1.1d 10 Sep 2019)
checking for OpenSSL_version... no
checking for OpenSSL_version_num... no
checking OpenSSL library version... not found
configure: error: OpenSSL library not found.
这个时候,我就将升级后的OpenSSL 1.1.1d的/usr/local/lib64下的文件全部拷贝到/usr/lib64下,并替换已有的文件;有时候也会做个文件链接,主要是libcrypto.so->libcrypto.so.1.1和libssl.so->libssl.so.1.1这两个文件:
更新前:
cd /usr/lib64
ls -ls libssl.so*
0 lrwxrwxrwx. 1 root root 16 3月 28 16:16 libssl.so -> libssl.so.1.0.2k
0 lrwxrwxrwx. 1 root root 16 3月 28 16:16 libssl.so.10 -> libssl.so.1.0.2k
460 -rwxr-xr-x. 1 root root 470376 8月 9 2019 libssl.so.1.0.2k
ls -l libcrypto.so*
lrwxrwxrwx. 1 root root 19 3月 28 16:16 libcrypto.so -> libcrypto.so.1.0.2k
lrwxrwxrwx. 1 root root 19 3月 28 16:16 libcrypto.so.10 -> libcrypto.so.1.0.2k
-rwxr-xr-x. 1 root root 2521144 8月 9 2019 libcrypto.so.1.0.2k
更新后:
[root@ds1 lib64]# ls -ls libssl.so*
0 lrwxrwxrwx. 1 root root 30 5月 23 11:48 libssl.so -> /usr/local/lib64/libssl.so.1.1(新版本的)
0 lrwxrwxrwx. 1 root root 16 3月 28 16:16 libssl.so.10 -> libssl.so.1.0.2k
460 -rwxr-xr-x. 1 root root 470376 8月 9 2019 libssl.so.1.0.2k
0 lrwxrwxrwx. 1 root root 16 3月 28 16:16 libssl.so.old -> libssl.so.1.0.2k(原来的)
[root@ds1 lib64]# ls -l libcrypto.so*
lrwxrwxrwx. 1 root root 33 5月 23 11:50 libcrypto.so -> /usr/local/lib64/libcrypto.so.1.1(新版本的)
lrwxrwxrwx. 1 root root 19 3月 28 16:16 libcrypto.so.10 -> libcrypto.so.1.0.2k
-rwxr-xr-x. 1 root root 2521144 8月 9 2019 libcrypto.so.1.0.2k
lrwxrwxrwx. 1 root root 19 3月 28 16:16 libcrypto.so.old -> libcrypto.so.1.0.2k(原来的)
这样处理后,OpenSSH在configure阶段就能正常找到OpenSSL Library了。
现在遇到的问题是,安装完OpenSSH 8.2之后,是否有需要进行替换的文件??
因为configure不带任何选项,默认也是安装在/usr/local下,配置文件安装在/usr/local/etc/下面。我只需要修改/usr/local/etc/sshd_config文件中的PermitRootLogin为yes即可,systemct restart sshd是没有问题的,ssh -V也能显示出正确的更新后的版本:
ssh -V
OpenSSH_8.2p1, OpenSSL 1.1.1d 10 Sep 2019
我要是按照网上介绍的,OpenSSH升级后替换文件,比如: cp /usr/local/etc/sshd_config /etc/ssh/sshd_config cp /usr/local/sbin/sshd /usr/sbin/sshd cp /usr/local/bin/ssh /usr/bin/ssh cp /usr/local/bin/ssh-keygen /usr/bin/ssh-keygen cp /usr/local/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
执行systemctl restart sshd时,反而出现启动超时的挂起状态,接着sshd自动重新启动,一直是activating状态:
systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: activating (start) since Sun 2020-05-24 16:33:08 CST; 1min 13s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 71318 (sshd)
CGroup: /system.slice/sshd.service
└─71318 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
May 24 16:33:08 192.168.0.130 systemd[1]: Starting OpenSSH server daemon...
May 24 16:33:08 192.168.0.130 sshd[71318]: Server listening on 0.0.0.0 port 22.
May 24 16:33:08 192.168.0.130 sshd[71318]: Server listening on :: port 22.
xshell也能通过ssh连接上来。不晓得问题处在什么地方。
注释:上面替换openssh相关文件中,第1个,我觉得没必要,因为更新后加载openssh配置文件,直接读取的是/usr/local/etc/sshd_config;第2个,可能需要替换,因为sshd.service中
执行的是这个路径/usr/sbin/sshd,不是/usr/local/sbin/sshd:
cd /etc/systemd/system/multi-user.target.wants/
vi 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
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
至于,第3步~第5步不清楚为什么要替换。当时执行完这几步之后,systemctl start sshd就不正常了。。。。😢😢😢
有没有哪位大神可以指点迷津的??? waitfeiyan | 初学一级 | 园豆: 182
提问于:2020-05-24 17:19 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题

清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行