• 编译安装升级openssh最新版


    安装环境

    系统版本:Centos7 mini

    安装步骤

    1. 依赖包安装
    2. 卸载原有openssh
    3. 下载openssh编译包
    4. 编译安装openssh
    5. 修改配置
    6. 设置openssh自启

    安装操作

    # 安装依赖包,因此系统最小化安装所以我就一股脑的将开发套件都给装上了
    yum groupinstall "Development Tools"  -y
    #如果不想一股脑把整个套件安装上的可以使用下面的命令
    #yum install openssl-devel  zlib-devel perl gcc pam-devel
    # 备份原来ssh的配置,备用
    cp -r /etc/sysconfig/sshd /etc/sysconfig/sshd.bak
    cp -r /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak
    cp -r /usr/lib/systemd/system/sshd.socket /usr/lib/systemd/system/sshd.socket.bak
    cp -r /usr/lib/systemd/system/sshd@.service /usr/lib/systemd/system/sshd@.service.bak
    cp -r /usr/lib/systemd/system/sshd-keygen.service /usr/lib/systemd/system/sshd-keygen.service.bak
    cp -r /etc/ssh /etc/ssh.bak
    # 卸载系统预装的openssh,先查询,然后卸载
    rpm -qa | grep openssl
    openssh-7.4p1-21.el7.x86_64
    openssh-clients-7.4p1-21.el7.x86_64
    openssh-server-7.4p1-21.el7.x86_64
    yum remove openssh-clients openssh-server openssh
    # 下载openssh安装包
    wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz
    # 删除原有配置文件,上面已经备份了所以放心上,建议采用mv命令
    mv /etc/ssh  /tmp
    #  解压压缩包
    tar xvf openssh-8.6p1.tar.gz
    # 编译安装
    ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh    --with-zlib   --with-md5-passwords   --with-pam   --with-ssl-engine
    make && make install
    # 创建软链接
    ln -s /usr/local/openssh/sbin/sshd /sbin/sshd
    ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh
    ln -s /usr/local/openssh/bin/ssh-add /usr/bin/ssh-add
    ln -s /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
    ln -s /usr/local/openssh/bin/ssh-keyscan /usr/bin/ssh-keyscan
    # 恢复刚刚备份的配置文件
    mv /etc/sysconfig/sshd.bak /etc/sysconfig/sshd
    mv /usr/lib/systemd/system/sshd.service.bak /usr/lib/systemd/system/sshd.service
    mv /usr/lib/systemd/system/sshd.socket.bak /usr/lib/systemd/system/sshd.socket
    mv /usr/lib/systemd/system/sshd@.service.bak /usr/lib/systemd/system/sshd@.service
    mv /usr/lib/systemd/system/sshd-keygen.service.bak /usr/lib/systemd/system/sshd-keygen.service
    # 检查现在的ssh版本
    ssh -V
    # 修改默认配置,允许root登录
    vi /etc/ssh/sshd_config
    #将 #PermitRootLogin prohibit-password 修改为 PermitRootLogin yes
    # 将sshd服务设为开机启动
    chkconfig sshd on
    
    

    安装问题

    问题描述1

    在使用systemctl start sshd 命令启动sshd服务会卡住,过一会显示启动超时,查询状态发现sshd服务启动失败。
    但是,通过源码包自带的sshd.init 脚本文件可以正常的管理sshd服务的启停。

    解决方法1

    # 将源码安装包中的opensshd.init文件复制到/etc/init.d/目录下
    cp opensshd.init /etc/init.d/sshd.init
    # 授予可执行权限
    chmod +x  /etc/init.d/sshd.init
    # 然后修改sshd.service管理配置文件
    vim /usr/lib/systemd/system/sshd.service
    #如果里面有内容的那将内容清空,没有的直接附上下面的配置即可
    [Unit]
    Documentation=man:systemd-sysv-generator(8)
    SourcePath=/etc/rc.d/init.d/sshd.init
    Description=SYSV: OpenSSH server daemon
    
    [Service]
    Type=forking
    Restart=no
    TimeoutSec=5min
    IgnoreSIGPIPE=no
    KillMode=process
    GuessMainPID=no
    RemainAfterExit=no
    PIDFile=/var/run/sshd.pid
    ExecStart=/etc/rc.d/init.d/sshd.init start
    ExecStop=/etc/rc.d/init.d/sshd.init stop
    ExecReload=/etc/rc.d/init.d/sshd.init reload
    #保存退出,然后运行下面的命令
    systemctl daemon-reload
    systemctl restart sshd
    

    参考链接

    问题描述2

    在升级openssh编译报错“configure: error: *** working libcrypto not found, check config.log”

    解决方法2

    # 出现上面的报错,是因为缺少openssl-devel包或者libcrypto相关库不正确,我们直接安装openssl-devel即可解决问题
    yum install -y openssl-devel
    

    参考链接

    openssh安装包下载地址

  • 相关阅读:
    每日一题力扣520 判断大小写
    每日一题力扣434
    每日一题力扣557
    每日一题力扣344 反转字符串
    每日一题力扣125 回文字符串
    每日一题力扣541
    每日一题力扣58
    【20211015】项目成本粗略分析
    【20211013】连岳摘抄
    【20211014】自己就是解决问题的起点
  • 原文地址:https://www.cnblogs.com/98record/p/bian-yi-an-zhuang-sheng-jiopenssh-zui-xin-ban.html
Copyright © 2020-2023  润新知