【发布时间】:2021-07-21 21:24:25
【问题描述】:
我有一个 Ubuntu 服务器。我已经配置了 ssh-agent 转发给它。服务器运行几个 lxc 容器。
当我“lxc exec container bash”时,ssh-agent 不会转发到 lxc bash。
如何将 ssh-agent 转发到 lxc 容器 bash ?
【问题讨论】:
我有一个 Ubuntu 服务器。我已经配置了 ssh-agent 转发给它。服务器运行几个 lxc 容器。
当我“lxc exec container bash”时,ssh-agent 不会转发到 lxc bash。
如何将 ssh-agent 转发到 lxc 容器 bash ?
【问题讨论】:
lxc exec 无法做到这一点。该命令与 SSH 访问容器的机制完全不同。
lxc exec 通过 REST API 与 LXD 守护程序通信,守护程序在容器内生成请求的进程并将进程的标准输出转发到 lxc。因此,幕后没有发生 SSH 连接。
因此,如果您想使用基于 ssh-agent 的工作流程,您只需在容器内设置 SSH。
取决于您在容器中运行的发行版,openssh 可能已经安装甚至启用; Ubuntu就是这种情况。如果,不安装它并按照以下步骤操作:
ssh-add -L 快速打印您的身份)lxc exec <container> bash
~/.ssh/authorized_keys。粘贴您的密钥并保存文件。从现在开始,您可以使用ssh -A <CONTAINER_IP> 并期望它能够正常工作。例如,您可以通过运行 lxc list 找到 CONTAINER_IP。
或者,您可以将您的容器添加到/etc/hosts,以避免每次都输入 IP 地址。
另一个提示:检查容器上的sshd_config 以确保您的 SSH 密钥是唯一的登录方式。
【讨论】: