为什么需要离线安装 OpenSSH?
在某些生产环境或隔离网络中,Linux 服务器无法连接互联网。但为了实现安全的远程管理(如通过 SSH 登录),必须安装 OpenSSH 服务。本文将指导你如何在无网络条件下完成安装。
准备工作
你需要一台可联网的相同架构(如 x86_64)和相同 Linux 发行版版本的“跳板机”,用于下载所需安装包。
- 目标系统:例如 CentOS 7、Ubuntu 20.04 等
- 跳板机:与目标系统同版本、同架构
- U盘、移动硬盘或内网文件服务器(用于传输安装包)
步骤一:在跳板机上下载 OpenSSH 及依赖包
对于 CentOS / RHEL / Rocky Linux
# 启用 yum 的 downloadonly 插件(如未安装)
sudo yum install -y yum-plugin-downloadonly
# 创建目录存放 RPM 包
mkdir ~/openssh-offline && cd ~/openssh-offline
# 下载 openssh-server 及其依赖(不安装)
sudo yum install --downloadonly --downloaddir=./ openssh-server openssh-clients
对于 Ubuntu / Debian
# 创建目录
mkdir ~/openssh-offline && cd ~/openssh-offline
# 下载 openssh-server 及依赖(仅 .deb 包)
apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests \
--no-conflicts --no-breaks --no-replaces --no-enhances openssh-server | \
grep "^\w" | sort -u)
提示:确保跳板机与目标机系统版本完全一致,否则可能因依赖冲突导致安装失败。
步骤二:将安装包复制到目标机器
使用 U 盘、SCP(如有临时内网)、或物理介质将 openssh-offline 文件夹完整拷贝到目标 Linux 服务器的某个目录(如 /tmp/openssh-offline)。
步骤三:在目标机器上离线安装
CentOS / RHEL 系列
cd /tmp/openssh-offline
sudo rpm -ivh *.rpm --nodeps --force
若提示缺少依赖,需回到跳板机补全依赖包并重新传输。
Ubuntu / Debian 系列
cd /tmp/openssh-offline
sudo dpkg -i *.deb
# 若有依赖问题,运行以下命令修复
sudo apt-get install -f
注意:在无网络环境下,
apt-get install -f 可能无法自动修复依赖。建议在跳板机上一次性下载完整依赖树。
步骤四:启动并启用 SSH 服务
# 启动服务
sudo systemctl start sshd # Ubuntu/Debian
sudo systemctl start ssh # CentOS/RHEL(部分版本)
# 设置开机自启
sudo systemctl enable sshd
检查服务状态:
sudo systemctl status sshd
常见问题排查
- 端口被占用? 检查
/etc/ssh/sshd_config中的Port配置。 - 无法登录? 确保防火墙开放 22 端口(如
firewall-cmd --add-port=22/tcp)。 - 密钥未生成? 手动运行
sudo ssh-keygen -A生成主机密钥。
安全建议
安装完成后,请务必:
- 修改默认 root 密码
- 禁用 root 远程登录(编辑
/etc/ssh/sshd_config,设置PermitRootLogin no) - 使用密钥认证代替密码登录