LXC exec bash ssh-agent转发

时间:2017-02-08 08:03:29

标签: ssh lxc ssh-agent

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

当我" lxc执行容器bash"时,ssh-agent不会转发给lxc bash。

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

1 个答案:

答案 0 :(得分:0)

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

因此,如果您想使用基于 ssh-agent 的工作流,您只需在容器内设置 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 密钥是唯一的登录方式。