【发布时间】:2020-12-28 21:18:24
【问题描述】:
我在连接到远程 (DigitalOcean) docker 引擎时遇到问题。我所做的是
- 在 Ubuntu 20.04 上使用 Docker 19.03.12 制作了一个 droplet。
- 创建一个新用户 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 引擎?
【问题讨论】:
-
也许将您的 ssh 密钥加载到代理中,这样就无需提示输入密码?我有该配置,但无法重现您的问题。
-
谢谢@larsks!如果您将此添加为答案,我会将其标记为解决方案。使用 ssh-add -K 解决了我的问题。
标签: docker ssh docker-engine