LXC exec bash ssh-agent 转发

Lau*_*ent 5 ssh ssh-agent lxc

我有一个 Ubuntu 服务器。我已经配置了 ssh-agent 转发给它。服务器运行几个 lxc 容器。

当我“lxc exec container bash”时,ssh-agent 不会转发到 lxc bash。

如何将 ssh-agent 转发到 lxc 容器 bash ?

小智 1

这对于 来说实际上是不可能的lxc exec。该命令是与 SSH 完全不同的访问容器的机制。 lxc exec通过 REST API 与 LXD 守护进程通信,守护进程在容器内生成请求的进程,并将进程的 stdout 转发到 lxc。因此,幕后没有发生 SSH 连接。

因此,如果您想使用基于 ssh 代理的工作流程,您只需在容器内设置 SSH 即可。

取决于您在容器中运行的发行版,openssh 可能已经安装甚至启用;Ubuntu 就是这种情况。如果不安装,请按照下列步骤操作:

  1. 复制您的密钥(提示:通过 ssh-agent 转发,您可以用来ssh-add -L快速打印您的身份)
  2. 访问容器旧方法:lxc exec <container> bash
  3. 使用 vi/vim 或 nano 编辑~/.ssh/authorized_keys. 粘贴您的密钥并保存文件。
  4. 登出。

从现在开始,您就可以使用ssh -A <CONTAINER_IP>并期待它发挥作用了。lxc list例如,您可以通过运行找到 CONTAINER_IP 。

或者,您可以添加容器以/etc/hosts避免每次都输入 IP 地址。另一个提示:检查sshd_config容器以确保您的 SSH 密钥是登录的唯一方式。