2
这个楼主还没有留下简介。
当前还没有回复,欢迎成为第一个参与讨论的人。
第 15 篇在独立 Ubuntu 服务器上部署了 Linux Tunneler,并创建了 private-ssh 服务。本篇让另一台 Ubuntu 电脑作为客户端加入同一个 OpenZiti 网络,通过 private-ssh.ziti 访问该服务。
本文沿用以下资源:
textSSH 服务:private-ssh 服务地址:private-ssh.ziti:22 服务端身份:ubuntu-ssh-host 新客户端身份:ubuntu-ssh-client
客户端需要能够访问 Controller 的 Edge API 和至少一个在线 Edge Router。
在 Controller 上创建客户端身份。
登录 Quickstart Controller 的 CLI:
bashsource "$HOME/.ziti/quickstart/$(hostname -s)/$(hostname -s).env"
zitiLogin
创建一个独立身份,并输出一次性注册令牌:
bashziti edge create identity ubuntu-ssh-client \ -o ubuntu-ssh-client.jwt
通过安全的现有管理通道,把 JWT 文件传到 Linux 客户端的用户目录。
为新身份添加 Dial 授权。
第 15 篇的 private-ssh-dial 授权的是 Windows 身份。现在新增一条策略,允许 Linux 身份访问同一个服务:
bashziti edge create service-policy private-ssh-linux-dial Dial \
--identity-roles '@ubuntu-ssh-client' \
--service-roles '@private-ssh'
检查客户端的策略关系:
bashziti edge policy-advisor services private-ssh ubuntu-ssh-client -q
预期应看到 Dial 授权,并且身份与服务有共同的在线 Router。Policy Advisor 检查的是策略关系,实际连接还需要在客户端验证。OpenZiti 策略文档介绍了这一检查方法。
在 Linux 客户端安装并注册 Tunneler。
在客户端 Ubuntu 上,按第 15 篇的方法安装包:
bashsudo apt update
sudo apt install -y curl gpg
curl -fsSL https://get.openziti.io/tun/scripts/install-ubuntu.bash \
-o install-openziti-tunnel.bash
cat install-openziti-tunnel.bash
bash install-openziti-tunnel.bash
启动服务,然后注册身份:
bashsudo systemctl enable --now ziti-edge-tunnel.service
sudo ziti-edge-tunnel add \
--jwt "$(< ./ubuntu-ssh-client.jwt)" \
--identity ubuntu-ssh-client
确认服务运行状态:
bashsystemctl status ziti-edge-tunnel.service --no-pager
Linux Tunneler 的透明代理会配置本机的 Ziti 域名解析和路由。该模式下,本机用户和进程可以使用已加载身份获准访问的服务,因此应按设备用途管理身份和授权范围。Linux Tunneler 文档对此有说明。
检查域名解析并连接 SSH。
在 Linux 客户端执行:
bashgetent ahostsv4 private-ssh.ziti
正常情况下应返回 Ziti 分配的虚拟地址,具体地址取决于 Tunneler 配置。随后连接:
bashssh 用户名@private-ssh.ziti
将用户名替换为目标 Ubuntu 上的实际账号。首次连接时,通过可信管理通道核对目标服务器的 SSH 主机密钥指纹。Ziti 授权通过后,SSH 仍会验证 Ubuntu 用户凭据。
如果域名无法解析,先确认 ubuntu-ssh-client 已注册、Dial 策略已生效,并检查 Tunneler 日志:
bashsudo journalctl -u ziti-edge-tunnel.service -n 50 --no-pager
使用 systemd-resolved 的客户端还可以通过 resolvectl dns 和 resolvectl domain 检查 DNS 配置;其他解析器需要按本机网络管理方式配置。具体方法见官方 Linux Tunneler 排查指南。
新建的 private-ssh-linux-dial 策略没有自动继承前文的 Posture Check;如需限制客户端状态,请把相应检查关联到这条策略。