centos7 升级openssh-8.9p1

centos7 升级openssh

1、下载软件

#获取软件并解压
wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-8.9p1.tar.gz
wget https://ftp.openssl.org/source/openssl-1.1.1n.tar.gz
tar -zxvf openssl-1.1.1n.tar.gz
tar -zxvf openssh-8.9p1.tar.gz

2、升级openssl

安装openssl采用不指定路径的方式来安装,因为之后在安装openssh的时候,其中的参数有一些问题,没有写对,是会报错的

##简单写一下openssl升级的命令,详细一点可以看下上面的连接
    ##安装依赖包
[root@304 ~]# yum -y install perl perl-devel gcc gcc-c++ wget

    ##下载openssl的软件包
[root@304 ~]# wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz

    ##解压包,可以 -C 来指定一个目录位置,方便管理
[root@304 ~]# tar -xvf openssl-1.1.1n.tar.gz

##编译安装,如果想,可以添加 --prefix= 来指定路径
##执行后会生成一些文件,默认为当前目录
##所以要先cd一下,否则当前目录会生成很多文件
[root@304 ~]# cd openssl-1.1.1n
[root@304 openssl-1.1.1n]# ./config
[root@304 openssl-1.1.1n]# make && make install

##解决一些链接库的问题
[root@304 openssl-1.1.1n]# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/
[root@304 openssl-1.1.1n]# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/
[root@304 openssl-1.1.1n]# cp -a libssl.a /usr/local/lib/
[root@304 openssl-1.1.1n]# cp -a libcrypto.a /usr/local/lib/

 ##查看版本
[root@304 openssl-1.1.1n]# openssl version
OpenSSL 1.1.1n  25 Mar 2021
[root@304 openssl-1.1.1n]# which openssl
/usr/local/bin/openssl

##若版本不是新版,需要替换旧版
[root@304 openssl-1.1.1n]# which openssl
/usr/bin/openssl
[root@304 openssl-1.1.1n]# cd /usr/bin/
[root@304 bin]# mv openssl openssl102
[root@304 bin]# ln -s /usr/local/bin/openssl openssl

    ##卸载旧版本
[root@304 bin]# yum erase -y openssl
[root@304 bin]# yum erase -y openssl-devel

3、清理旧版本openssh软件及各种配置

##查看下当前服务
[root@304 ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2021-07-03 22:31:21 CST; 6h left
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 936 (sshd)
   CGroup: /system.slice/sshd.service
    ... ...
    ... ...

    ##删除原有配置文件
[root@304 ~]# cd /etc/
[root@304 etc]# rm -fr ssh

##卸载旧版本
[root@304 etc]# rpm -qa | grep openssh-*
openssh-clients-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64
[root@304 etc]# systemctl stop sshd
[root@304 etc]# yum erase -y openssh-clients openssh-server openssh

##完成卸载
[root@304 etc]# ssh -V
-bash: /bin/ssh: No such file or directory

4、安装openssh

yum install -y pam-devel
cd openssh-8.9p1
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/include --with-ssl-dir=/usr/local/bin --with-zlib --with-md5-passwords --with-pam
## --prefix=/usr/ 这里还是指定一下安装的目录路径;
#--sysconfdir=/etc/ssh 这里指定的配置文件的目录路径; 
#--with-openssl-includes=/usr/local/include 看上面讲一下;
# --with-ssl-dir=/usr/local/openssl 看上面讲一下;后面参数不需要调整,写上就可以啦

#安装
make && make install
ssh -V

5、配置服务及启动

##在我们解压的软件包目录下有自带的服务配置文件
[root@304 openssh-8.6p1]# ls contrib/redhat/sshd.init
contrib/redhat/sshd.init

    ##将其复制到启动配置文件的目录下
[root@304 openssh-8.6p1]# cp -a contrib/redhat/sshd.init /etc/init.d/sshd

    ##查看是否有执行权限,若没有,需要 chmod +x 来赋权
[root@304 openssh-8.6p1]# ls -l /etc/init.d/sshd 
-rwxr-xr-x 1 root root 1721 Apr 16 11:55 /etc/init.d/sshd

    ##添加服务
[root@304 openssh-8.6p1]# chkconfig --add sshd

    ##启动服务并查看状态
[root@304 openssh-8.6p1]# systemctl start sshd
[root@304 openssh-8.6p1]# systemctl status sshd
● sshd.service - SYSV: OpenSSH server daemon
   Loaded: loaded (/etc/rc.d/init.d/sshd; bad; vendor preset: enabled)
   Active: active (running) since Sat 2021-07-03 17:56:23 CST; 9s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 57383 ExecStart=/etc/rc.d/init.d/sshd start (code=exited, status=0/SUCCESS)
 Main PID: 57391 (sshd)
   CGroup: /system.slice/sshd.service
           └─57391 sshd: /usr/sbin/sshd [listener] 0 of 10-100 startups

Jul 03 17:56:23 304 systemd[1]: Starting SYSV: OpenSSH server daemon...
Jul 03 17:56:23 304 sshd[57383]: Starting sshd:[  OK  ]
Jul 03 17:56:23 304 systemd[1]: Can't open PID file /var/run/sshd.pid (yet?) ...ory
Jul 03 17:56:23 304 sshd[57391]: Server listening on 0.0.0.0 port 22.
Jul 03 17:56:23 304 sshd[57391]: Server listening on :: port 22.
Jul 03 17:56:23 304 systemd[1]: Started SYSV: OpenSSH server daemon.
Hint: Some lines were ellipsized, use -l to show in full.

    ##顺便设置一下开机自动启动
    ##常规的 systemctl 设置会给予一个提示,命令被重定向了,那么就使用提示给的命令
[root@304 openssh-8.6p1]# systemctl enable sshd
sshd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig sshd on

    ##再次设置开机启动
    ##下面显示2、3、4、5是on就可以,其数字代表启动级别
[root@304 openssh-8.6p1]# /sbin/chkconfig sshd on
[root@304 openssh-8.6p1]# chkconfig --list sshd

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

sshd               0:off    1:off    2:on    3:on    4:on    5:on    6:off

    ##现在的情况下,就已经可以连接了,但是不能登录,依然提示输入密码
    ##类似的情况之前设置telnet时也出现了,所以要为用户设置登录的权限
    ##结尾添加即可
[root@304 openssh-8.6p1]# vim /etc/ssh/sshd_config
    ... ...
    ... ...
permitRootlogin yes

    ##重启服务
[root@304 openssh-8.6p1]# service sshd restart
Restarting sshd (via systemctl):                           [  OK  ]

    ##之后尝试ssh连接登录
[C:\~]$ ssh 192.168.1.90


Connecting to 192.168.1.90:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Sat Jul  3 15:18:30 2021 from ::ffff:192.168.1.10
[root@304 ~]#
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在输入中…………

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值