OpenSSH安装(升级)

OpenSSH安装(升级)

  1. 下载 OpenSSH 源码,从 OpenSSH 官方网站或其镜像站点下载 OpenSSH 9.9.1 的源码包。
    wget <https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gz>

  2. 解压源码包
    tar -xzf openssh-9.9p1.tar.gz
    cd openssh-9.9p1

  3. 配置编译环境
    ./configure --prefix=/usr/local/openssh9.9 --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd

    这里解释一下常用的配置选项:
    –prefix=/usr/local/openssh9.9:指定安装路径。
    –sysconfdir=/etc/ssh:指定配置文件目录。
    –with-md5-passwords:启用 MD5 密码支持(注意:MD5 已被认为是不安全的,生产环境中应避免使用)。
    –with-privsep-path=/var/lib/sshd:指定特权分离路径。

  4. 编译源码并且安装
    make && make install

  5. 配置 SSH 服务
    安装完成后,需要配置 SSH 服务。创建必要的目录和文件:
    sudo mkdir -p /var/lib/sshd
    sudo touch /var/log/secure
    sudo chown root:root /var/log/secure
    sudo chmod 0600 /var/log/secure

  6. 编辑 SSH 配置文件vi /etc/ssh/sshd_config,确保它包含以下基本配置:

    Port 22
    Protocol 2
    PermitRootLogin yes
    PasswordAuthentication yes
    ChallengeResponseAuthentication no
    UsePAM yes
    X11Forwarding yes
    PrintMotd no
    AcceptEnv LANG LC_*
    Subsystem sftp /usr/local/openssh9.9/libexec/sftp-server
    

    注意Subsystem为安装的openssh9.9的路径,一般需要改下
    注意PermitRootLogin为是否允许root用户直接远程,不建议设置为yes,但是一般设置为yes更方便

  7. 启动 SSH 服务并设置为开机自启:
    sudo /usr/local/openssh9.9/sbin/sshd -f /etc/ssh/sshd_config

    如果出现:error while loading shared libraries: libcrypto.so.3: cannot open shared object file: No such file or directory
    则直接修改动态链接库配置文件vi /etc/ld.so.conf,将openssl安装包中的链接路径放入即可:
    也可使用find /usr -name "libcrypto.so*"查看与该库相关的文件所在的文件夹,放入该文件夹路径也可行
    例如/usr/local/src/openssl-3.3.1
    放入末尾即可,随后进行保存文件,并执行ldconfig使动态链接库实时生效

  8. 检查sshd服务的状态sudo systemctl status sshd,如果里面没有fail,代表正常,否则按照如下几点进行排查问题

    如果出现:Failed to enable unit: Unit file sshd.service does not exist,代表sshd.service未能创建成功
    需要手动创建sshd.service服务,vi /etc/systemd/system/sshd.service,在该文件的填充内容如下

    [Unit]
    Description=OpenSSH server daemon
    After=network.target
    
    [Service]
    ExecStart=/usr/local/openssh9.9/sbin/sshd -D
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    

    上面的ExecStart为sshd可执行文件的位置

    创建或修改sshd.service文件后,需要重新加载系统守护进程并启动SSH服务
    sudo systemctl daemon-reload
    sudo systemctl start sshd
    sudo systemctl enable sshd
    sudo systemctl restart sshd

    如果仍然启动不了,则可能是端口占用,需要杀死以前的远程端口,一般是22端口 使用sudo netstat -tulnp | grep :22查看PID的具体数值,再使用kill -9 PID杀死端口,再使用sudo systemctl restart sshd重启sshd服务

    再次检查 SSH 服务状态
    sudo systemctl status sshd 如果没有fail则代表正常

    最后使用sshd -v检查openssh的版本号与openssl的版本号是否是最新的
    如果还是之间旧的版本号,说明以前的sshd和openssl没有被删除,直接使用 which opensslwhich sshd
    查看当前环境变量中储存的可执行文件路径是否正确,如果出来了路径且进去后使用 ./openssl version./sshd -v
    出来的版本号不正确,则直接使用 rm -rf opensslrm -rf sshd
    删除openssl和sshd(一般都是sshd不对,删除sshd即可,openssl一般都是正确的版本)
    注意先查询openssl的版本,看是否正确,正确后再进行查询sshd的版本是否正确
    当可执行文件删除后再使用which opensslwhich sshd提示查询不到路径时
    则进行编辑~/.bashrc~/.zshrc文件
    将正确的最新的openssh9.9的安装路径放入配置文件:export PATH=$PATH:/usr/local/openssh9.9/sbin
    最后保存配置文件并使用source ~/.bashrc更新配置文件即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值