【发布时间】:2015-12-30 02:32:04
【问题描述】:
Could not open a connection to your authentication agent.
我正在关注approach of mounting the $SSH_AUTH_SOCK as a volume,但使用 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 时,它显示Could not open a connection to your authentication agent.
当我运行 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。我错过了什么?
【问题讨论】:
-
#1633 是不必要的,我在
NOTE中提到我正在运行插值。感谢您将我指向#551,this comment is similar。
标签: docker ssh-keys docker-compose