OpenSSH 升级
文章目录
源码包
不带 openssl(不推荐)
编译 openssh
-
下载 openssh 源码包,解压
1 2 3 4
curl -LO https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz tar zxf openssh-9.8p1.tar.gz cd openssh-9.8p1/ # 版本信息在 version.h
-
编译安装 openssh
1 2 3 4
mkdir /opt/openssh ./configure --prefix=/opt/openssh --without-openssl make make install
-
编辑 /opt/openssh/etc/sshd_config,修改常用配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
# 避免与系统自带的 sshd 端口冲突 Port 22222 # 允许 root 用户登录,允许私钥认证,允许密码认证 PermitRootLogin yes PubkeyAuthentication yes PasswordAuthentication yes # 开启 ssh 转发 AllowTcpForwarding yes GatewayPorts yes # ssh 保活 TCPKeepAlive yes ClientAliveInterval 60 ClientAliveCountMax 3 # 禁用 dns 解析 UseDNS no # 避免与系统自带的 sshd pid 文件冲突 PidFile /var/run/openssh.pid
创建 systemd 启动文件
- 创建 /opt/openssh/openssh.service,内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14
[Unit] Description=OpenSSH server daemon After=network.target sshd-keygen.service Wants=sshd-keygen.service [Service] Type=simple ExecStart=/opt/openssh/sbin/sshd -D KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
打包
- 进入 /opt 目录下,打包 openssh 目录
1 2
cd /opt tar zcf /tmp/openssh-9.8p1-without-openssl.tgz openssh/
带 openssl
编译 openssl
-
下载 openssl 源码包,解压
1 2 3
curl -LO https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz tar zxf openssl-1.1.1w.tar.gz cd openssl-1.1.1w
-
编译安装 openssl
1 2 3 4
mkdir /opt/openssl ./configure --prefix=/opt/openssl make make install
编译 openssh
-
下载 openssh 源码包,解压,同上
-
编译安装 openssh
1 2 3 4 5 6
mkdir /opt/openssh export PATH=/opt/openssl/bin:$PATH export LD_LIBRARY_PATH=/opt/openssl/lib ./configure --prefix=/opt/openssh --with-ssl-dir=/opt/openssl make make install
-
编辑 /opt/openssh/etc/sshd_config,修改常用配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
# 避免与系统自带的 sshd 端口冲突 Port 22222 # 允许 root 用户登录,允许私钥认证,允许密码认证 PermitRootLogin yes PubkeyAuthentication yes PasswordAuthentication yes # 开启 ssh 转发 AllowTcpForwarding yes GatewayPorts yes # ssh 保活 TCPKeepAlive yes ClientAliveInterval 60 ClientAliveCountMax 3 # 禁用 dns 解析 UseDNS no # 避免与系统自带的 sshd pid 文件冲突 PidFile /var/run/openssh.pid
创建 systemd 启动文件
- 创建 /opt/openssh/openssh.service,内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
[Unit] Description=OpenSSH server daemon After=network.target sshd-keygen.service Wants=sshd-keygen.service [Service] Type=simple Environment=LD_LIBRARY_PATH=/opt/openssl/lib ExecStart=/opt/openssh/sbin/sshd -D KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
打包
- 进入 /opt 目录下,打包 openssl 和 openssh 目录
1 2
cd /opt tar zcf /tmp/openssh-9.8p1-with-openssl.tgz openssl/ openssh/
部署
-
上传部署包到目标服务器中,解压
1
tar zxf openssh-9.8p1-with-openssl.tgz -C /opt/
-
复制 systemd 启动文件
1
cp /opt/openssh/openssh.service /etc/systemd/system/
-
启动 openssh,并设置开机自动启动
1 2 3
systemctl daemon-reload systemctl start openssh systemctl enable openssh
文章作者 Colben
上次更新 2024-07-02