无法打开与身份验证代理的连接.
我正在关注approach of mounting the $SSH_AUTH_SOCK
as a volume,但是这样做了.
建立
的〜/ .ssh /配置
Host *
ForwardAgent yes
Dockerfile:
FROM atlashealth/ruby:2.2.2
RUN apt-get update -qq && \
apt-get install -qy build-essential libxml2-dev libxslt1-dev \
g++ qt5-default libqt5webkit5-dev xvfb dbus \
libMysqLclient-dev \
MysqL-client openssh-client git && \
# cleanup
apt-get clean && \
cd /var/lib/apt/lists && rm -fr *Release* *Sources* *Packages* && \
truncate -s 0 /var/log/*log
撰写yaml:
web:
build: "."
environment:
- SSH_AUTH_SOCK=/ssh-agent
volumes:
- "$SSH_AUTH_SOCK:/ssh-agent"
注意:我在我的作品上运行插值,因此$SSH_AUTH_SOCK被/private/tmp/com.apple.launchd.ZxGtZy6a9w/Listeners替换.
我已经在主机OSX上正确转发设置,它可以与另一个ubuntu主机配合使用.
跑
docker-compose运行web bash
在容器
当我运行ssh-add -L时,它声明无法打开与身份验证代理的连接.
当我运行ssh-agent时,它会产生
SSH_AUTH_SOCK=/tmp/ssh-vqjuo7FIfVOL/agent.21; export SSH_AUTH_SOCK;
SSH_AGENT_PID=22; export SSH_AGENT_PID;
echo Agent pid 22;
当我从bash运行echo $SSH_AUTH_SOCK时,它会产生/ ssh-agent
题
似乎compose使SSH_AUTH_SOCK可用于bash,但似乎ssh-agent没有获得相同的env.我错过了什么?
>启动一个长时间运行的容器
docker run -d –name = ssh-agent whilp / ssh-agent:latest
>添加密钥
docker run –rm –volumes-from = ssh-agent -v~ / .ssh:/ ssh -it whilp / ssh-agent:latest ssh-add / ssh / id_rsa
>列出你的钥匙
docker run –rm –volumes-from = ssh-agent -v~ / .ssh:/ ssh -it whilp / ssh-agent:latest ssh-add -L
>将bash放入容器中并使用ssh -T git@bitbucket.org检查密钥
我的yaml看起来像:
web:
build: .
working_dir: /project
ports:
- "3000"
environment:
# make ssh keys available via ssh forwarding (see volume entry)
- SSH_AUTH_SOCK=/ssh-agent/socket
volumes_from:
# Use configured whilp/ssh-agent long running container for keys
- ssh-agent