在Rocky Linux 9中,SSH隧道的建立与NetworkManager(nmcli)无直接关联,需通过SSH命令实现。建议步骤:1. 确保openssh-server/client已安装;2. 使用 ssh -L 本地端口:目标地址:目标端口 用户名@跳板机IP
创建本地隧道,或 -R
远程隧道;3. 通过systemd服务持久化(创建.service文件,配置autossh)。关键点:防火墙放行SSH端口(22)、密钥认证替代密码、隧道稳定性监控。企业环境中建议结合VPN和SSH Bastion Host增强安全性。
如何通过 nmcli 在 Rocky Linux 9 中启用并配置 SSH 隧道?
使用nmcli创建SSH隧道需先安装NetworkManager-ssh,然后执行nmcli connection add type ssh tun.remote <IP>
并配置参数。或直接通过ssh -L/-R
命令建立隧道更简便。
更多回答
在Rocky Linux 9中通过nmcli配置SSH隧道需结合SSH命令与网络策略管理,以下是实践总结:
-
基础隧道建立
ssh -fN -L <local_port>:<target_host>:<target_port> <user>@<jump_host>
建议使用密钥认证,需提前部署
ssh-keygen
与ssh-copy-id
完成免密登录,避免交互中断。 -
nmcli整合管理 通过NetworkManager管理隧道生命周期:
# 创建持久化systemd服务 systemctl --user enable ssh-tunnel.service # 配置nmcli连接依赖项 nmcli con mod eth0 connection.autoconnect-priority 10 nmcli con mod ssh-tunnel connection.autoconnect-priority 100
实现主链路中断时自动重建隧道。
-
防火墙穿透
firewall-cmd --add-port=<local_port>/tcp --permanent firewall-cmd --reload
需同步检查SELinux上下文,避免
sshd_t
域限制本地端口绑定。
典型挑战:
- 隧道稳定性:公网抖动导致断连,需在
/etc/ssh/ssh_config
添加ServerAliveInterval 60
保活机制 - 权限隔离:非root用户需通过
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
赋予低端口绑定权限 - 多跳级联:嵌套隧道需使用
-J
参数逐级穿透,如ssh -J user1@host1:22,user2@host2:2222
- 流量可见性:建议通过
tshark -i tun0
实时监控隧道流量,排查加密异常
最终方案应通过systemd unit封装SSH命令,利用nmcli实现网络拓扑绑定,达到生产级可靠性要求。
Rocky Linux 9里用nmcli配SSH隧道其实不太常见,一般直接用ssh命令。比如先装好openssh客户端(sudo dnf install openssh-clients),然后跑个命令:ssh -L 本地端口:目标IP:目标端口 用户名@跳板机IP -N。想开机自启的话,可以写个systemd服务或者丢进crontab。nmcli更多是管网卡和VPN的,SSH隧道还是ssh自己搞更直接~
在Rocky Linux 9中,SSH隧道的核心功能由OpenSSH实现,而非直接通过NetworkManager(nmcli)。以下是标准操作流程:
-
安装OpenSSH:
sudo dnf install openssh-clients openssh-server
-
本地端口转发示例(将本地端口8888转发到远程主机192.168.1.100:80):
ssh -N -L 8888:192.168.1.100:80 user@ssh_server -p 22
-N
表示不执行远程命令,-L
定义本地转发 -
持久化配置(通过systemd): 创建服务文件
/etc/systemd/system/ssh_tunnel.service
:[Unit] Description=SSH Tunnel After=network.target [Service] ExecStart=/usr/bin/ssh -NT -L 8888:192.168.1.100:80 user@ssh_server -i /path/to/private_key Restart=always RestartSec=30 [Install] WantedBy=multi-user.target
运行
sudo systemctl enable --now ssh_tunnel
关键安全实践:
- 使用SSH密钥认证(
ssh-keygen
生成密钥) - 限制远程用户权限(通过
sshd_config
设置AllowUsers
) - 启用SSH日志监控(
/var/log/secure
) - 定期更新SSH软件包(
sudo dnf update openssh*
)
如需通过NetworkManager集成,需安装第三方插件(如networkmanager-ssh),但官方不建议生产环境使用。企业级场景建议通过Ansible等工具批量部署SSH隧道配置。