远程访问
Podman 桌面可以管理远程 Podman 连接。这通过使用命令 `podman system connection ls` 列出的连接列表来实现。
容器可以像本地管理一样创建、启动、停止和删除。
此功能通过通过 SSH 连接到远程主机上的 Podman 套接字来实现。
ed25519 密钥、SSH 连接和启用的 Podman 套接字 是远程访问所必需的。
RSA 密钥不受支持;ed25519 密钥是推荐的,也是目前设置远程连接的唯一方法。
先决条件
- 对安装了 Podman 的 Linux 机器进行 SSH 访问
步骤
Podman 桌面将通过启用设置,自动检测并显示 GUI 中的任何 `podman system connection ls` 连接。
如果您尚未添加远程 podman 连接,您可以按照官方 Podman 指南或按照以下步骤操作
- 生成本地 ed25519 密钥
$ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519
- 将您的 公共 ed25519 密钥复制到服务器
您的公共 SSH 密钥需要复制到 Linux 服务器上的 `~/.ssh/authorized_keys` 文件中
$ ssh-copy-id -i ~/.ssh/id_ed25519.pub user@my-server-ip
- 启用远程连接上的 Podman 套接字
默认情况下,podman.socket 在 Podman 安装中是 禁用的。启用 systemd 套接字允许远程客户端控制 Podman。
$ systemctl enable podman.socket
$ systemctl start podman.socket
通过检查状态确认套接字已启用
$ systemctl status podman.socket
- 将连接添加到 `podman system connection ls`
了解您正在使用哪个套接字路径很重要,因为这在普通用户和 root 用户之间有所不同。
使用 `podman info` 确定正确的套接字路径
$ ssh user@my-server-ip podman info | grep sock
path: /run/user/1000/podman/podman.sock
如果您使用的是 root 用户,它可能显示为
$ ssh root@my-server-ip podman info | grep sock
path: /run/podman/podman.sock
现在您可以添加连接了。使用不同的名称将它添加到 Podman 系统连接列表中
# non-root
$ podman system connection add my-remote-machine --identity ~/.ssh/id_ed25519 ssh://myuser@my-server-ip/run/user/1000/podman/podman.sock
# root
$ podman system connection add my-remote-machine --identity ~/.ssh/id_ed25519 ssh://root@my-server-ip/run/podman/podman.sock
- 在 Podman 桌面中检查,例如 容器 部分,以确认您现在可以访问您的远程实例。
验证
GUI 验证
- 在远程机器上运行一个 helloworld 容器
$ ssh user@my-server-ip podman run -d quay.io/podman/hello
- 在 Podman 桌面中,检查您的容器是否出现在 容器 部分。
CLI 验证
- 将您的远程连接设置为默认连接
$ podman system connection default my-remote-machine
- 验证容器是否出现在 CLI 中
$ podman ps