Docker通过ssh连接到远程守护程序-权限被拒绝(公钥)
我在连接远程(DigitalOcean)docker引擎时遇到问题。我所做的是Docker通过ssh连接到远程守护程序-权限被拒绝(公钥),docker,ssh,docker-engine,Docker,Ssh,Docker Engine,我在连接远程(DigitalOcean)docker引擎时遇到问题。我所做的是 在Ubuntu 20.04上用Docker 19.03.12制作了一个水滴 创建新用户myuser并添加到远程主机上的docker组 为新用户创建一个.ssh/authorized_密钥,并设置权限、所有者等 已重新启动ssh和docker服务 结果 我可以使用myuser从Mac笔记本ssh连接到远程主机。(当我运行ssh时,keychain会询问id_rsa.key的密码短语。) 在我通过ssh登录到远程主机后,
docker-Hssh://myuser@液滴ip ps
->错误DOCKER\u主机=ssh://myuser@液滴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代理
,这样Docker就可以在不请求密码的情况下使用密钥
如果要添加默认密钥(~/.ssh/id\u rsa
),只需运行:
ssh-add
您可以通过提供键的路径来添加特定键:
ssh-add ~/.ssh/id_rsa_special
大多数现代桌面环境默认运行
ssh代理程序。是否可以将ssh密钥加载到代理程序中,这样就不需要提示输入密码?我有那个配置,我无法重现你的问题。谢谢@larsks!如果你加上这个作为答案,我会把它标记为解决方案。使用ssh-add-K解决了我的问题。