问题描述
我无法连接到远程(DigitalOcean)泊坞窗引擎。我所做的是
- 在Ubuntu 20.04上使用Docker 19.03.12创建了一个小版本。
- 将新用户myuser并添加到远程主机上的docker组。
- 为新用户的家创建一个.ssh / authorized_keys并设置权限,所有者等。
- 重新启动ssh和docker服务。
结果
- 我可以使用myuser将Mac笔记本从ssh切换到远程主机。 (当我运行ssh钥匙串时,要求输入id_rsa.key的密码。)
- 通过ssh登录到远程主机后,我可以毫无问题地运行docker ps和docker info。
问题
在为远程引擎创建新上下文之前,我尝试从Mac笔记本电脑上的本地客户端运行一些docker命令。对我来说有趣的是,下面的命令都不要求输入id_rsa密码)
-
docker -H ssh://myuser@droplet_ip ps
->错误 -
DOCKER_HOST=ssh://myuser@droplet_ip docker ps
->错误
错误
docker -H ssh://myuser@droplet_ip ps
error during connect: Get http://docker/v1.40/containers/json: command [ssh -l myuser -- droplet_ip docker system dial-stdio] has exited with exit status 255,please make sure the URL is valid,and Docker 18.09 or later is installed on the remote host: stderr=myuser@droplet_ip: Permission denied (publickey).
我错过了哪一步?如何连接到远程Docker引擎?
解决方法
听起来好像Docker可能不允许ssh在连接时提示输入密钥密码。最简单的解决方案可能是将您的密钥加载到ssh-agent
中,以便Docker将能够使用该密钥而无需输入密码。
如果要添加默认密钥(~/.ssh/id_rsa
),则可以运行:
ssh-add
您可以通过提供密钥路径来添加特定密钥:
ssh-add ~/.ssh/id_rsa_special
大多数现代桌面环境默认情况下都运行ssh-agent
进程。