无法打开到您的认证代理的连接。
我正在遵循将$SSH_AUTH_SOCK
挂载为卷的方法,但是使用compose进行操作。
设置
~/.ssh/config
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"
注意: 我在compose中运行插值,因此例如$SSH_AUTH_SOCK
会被替换为/private/tmp/com.apple.launchd.ZxGtZy6a9w/Listeners
。
我已经正确地在我的主机OSX上设置了转发,并且它可以对另一个Ubuntu主机进行工作。
运行
docker-compose run 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
。我错过了什么?