Pau*_*eon 24 macos ssh docker boot2docker
我想使用ssh-agent将我的密钥转发到docker镜像并从私有github仓库中取出.
我在Yosemite上使用了一个稍微修改过的https://github.com/phusion/passenger-docker和boot2docker.
ssh-add -l
...key details
boot2docker up
然后我使用我在很多地方看到的命令(即https://gist.github.com/d11wtq/8699521):
docker run --rm -t -i -v $SSH_AUTH_SOCK:/ssh-agent -e SSH_AUTH_SOCK=/ssh-agent my_image /bin/bash
但它似乎不起作用:
root@299212f6fee3:/# ssh-add -l
Could not open a connection to your authentication agent.
root@299212f6fee3:/# eval `ssh-agent -s`
Agent pid 19
root@299212f6fee3:/# ssh-add -l
The agent has no identities.
root@299212f6fee3:/# ssh git@github.com
Warning: Permanently added the RSA host key for IP address '192.30.252.128' to the list of known hosts.
Permission denied (publickey).
单线:
以下是在运行Debian Jessie映像的Ubuntu 16上进行设置的方法:
docker run --rm -it --name container_name \
-v $(dirname $SSH_AUTH_SOCK):$(dirname $SSH_AUTH_SOCK) \
-e SSH_AUTH_SOCK=$SSH_AUTH_SOCK my_image
https://techtip.tech.blog/2016/12/04/using-ssh-agent-forwarding-with-a-docker-container/
从 version 开始2.2.0.0,macOS 的 docker 允许用户在容器内访问主机的 SSH 代理。
这是一个示例命令,可让您执行此操作:
docker run --rm -it \
-v /run/host-services/ssh-auth.sock:/ssh-agent \
-e SSH_AUTH_SOCK="/ssh-agent" \
my_image
请注意,您必须挂载特定路径 ( /run/host-services/ssh-auth.sock) 而不是$SSH_AUTH_SOCK环境变量中包含的路径,就像您在 linux 主机上所做的那样。
默认情况下,boot2docker 仅共享/Users. SSH_AUTH_SOCK可能是在下面/tmp,所以-v安装的是虚拟机的代理,而不是你的 Mac 上的代理。
如果您将 VirtualBox 设置为共享/tmp,它应该可以正常工作。
| 归档时间: | 
 | 
| 查看次数: | 12456 次 | 
| 最近记录: |