跳到主要内容

远程访问

Podman 桌面可以管理远程 Podman 连接。这通过使用命令 `podman system connection ls` 列出的连接列表来实现。

容器可以像本地管理一样创建、启动、停止和删除。

此功能通过通过 SSH 连接到远程主机上的 Podman 套接字来实现。

ed25519 密钥、SSH 连接和启用的 Podman 套接字 是远程访问所必需的。

RSA 密钥不受支持;ed25519 密钥是推荐的,也是目前设置远程连接的唯一方法。

先决条件

  • 对安装了 Podman 的 Linux 机器进行 SSH 访问

步骤

Podman 桌面将通过启用设置,自动检测并显示 GUI 中的任何 `podman system connection ls` 连接。

Enable the remote setting

如果您尚未添加远程 podman 连接,您可以按照官方 Podman 指南或按照以下步骤操作

  1. 生成本地 ed25519 密钥
$ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519
  1. 将您的 公共 ed25519 密钥复制到服务器

您的公共 SSH 密钥需要复制到 Linux 服务器上的 `~/.ssh/authorized_keys` 文件中

$ ssh-copy-id -i ~/.ssh/id_ed25519.pub user@my-server-ip
  1. 启用远程连接上的 Podman 套接字

默认情况下,podman.socket 在 Podman 安装中是 禁用的。启用 systemd 套接字允许远程客户端控制 Podman。

$ systemctl enable podman.socket
$ systemctl start podman.socket

通过检查状态确认套接字已启用

$ systemctl status podman.socket
  1. 将连接添加到 `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
  1. 在 Podman 桌面中检查,例如 容器 部分,以确认您现在可以访问您的远程实例。

验证

GUI 验证

  1. 在远程机器上运行一个 helloworld 容器
$ ssh user@my-server-ip podman run -d quay.io/podman/hello
  1. 在 Podman 桌面中,检查您的容器是否出现在 容器 部分。

CLI 验证

  1. 将您的远程连接设置为默认连接
$ podman system connection default my-remote-machine
  1. 验证容器是否出现在 CLI 中
$ podman ps

其他资源