Could not open a connection to your authentication agent.
我正在关注approach of mounting the $SSH_AUTH_SOCK
as a volume,但是这是通过撰写来完成的。
~/.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"
注意:我在我的作品上运行插值,因此$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
。我错过了什么?
答案 0 :(得分:9)
我使用whilp/ssh-agent解决了这个问题,但您应该注意这是不直接使用 $http.get('resources/json/mkb10.json')
.then(function(res){
$scope.cond.treeData = res.data;
if (data !== undefined){
for (var i = 0; i < $scope.cond.treeData.length; i++){
$scope.cond.treeData[i].state = {};
for (var j = 0; j < data.cond.length; j++)
if ($scope.cond.treeData[i].id == data.cond[j]){
$scope.cond.treeData[i].state = {selected: true};
}
$scope.cond.treeData[i].state.opened = false;
}
}
$scope.treeInstance.jstree(true).close_all();
$scope.treeConfig.version++;
$scope.treeInstance.jstree(true).close_all();
});
并且需要额外的长时间运行容器。为了便于使用,我将这种方法整合到docker-rails中。
启动一个长时间运行的容器
SSH_AUTH_SOCK
添加密钥
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
将bash打入容器并使用docker run --rm --volumes-from=ssh-agent -v ~/.ssh:/ssh -it whilp/ssh-agent:latest ssh-add -L
我的yaml看起来像:
ssh -T git@bitbucket.org
答案 1 :(得分:1)
之前使用whilp/ssh-agent接受的答案因某些原因对我不起作用(之前有效,但自从上次更改后它没有,我不知道为什么)所以我创建了自己的答案代理商容器:
基于最小alpine:3.4
基础图像。所以任何人在OSX上仍然遇到问题,请检查README
它现在很容易启动并运行!