bounty将在5天后过期。回答此问题可获得+50的声望奖励。jaal kamza希望吸引更多人关注此问题。
我目前正在尝试使用dockerpy sdk连接到我的远程ubuntu服务器,这样我就可以通过python管理我的docker容器了。
我得到了一些问题时,试图这样做。
docker.APIClient(base_url="ssh://user@ip")
在执行以下操作时,我收到错误:
paramiko.ssh_exception.PasswordRequiredException: private key file is encrypted
我可以通过添加kwarg来解决此问题:use_ssh_client
,但之后我被迫输入密码,这限制了自动化的潜力。
docker.APIClient(base_url="ssh://user:@ip", use_ssh_client=True)
在使用上面的代码时,我也尝试过将我的ssh密钥密码输入到base_url中,例如:
docker.APIClient(base_url="ssh://user:pass@ip", use_ssh_client=True)
但是,这会向我显示以下错误:
docker.errors.DockerException: Invalid bind address format: ssh://root:pass@ip
我已经没有什么想法了,我很困惑我应该如何绕过这个问题?
非常感谢...
1条答案
按热度按时间pobjuy321#
即使是关于 docker.client.DockerClient 的问题,也有可能以Piere先生的身份建立联系,因为它在幕后使用了 docker.api.client.APIClient。
您正在尝试使用密码验证建立连接,这就是您要求提示输入密码的原因。我猜您需要配置基于密钥的SSH登录,如Docker的文档中所述
修复步骤:
~/.ssh/config
1.使用ssh命令从本地终端连接以确保建立连接 * 而不询问口令 *
ssh user@ip
1.使用库
client = docker. APIClient(base_url="ssh://user@ip", use_ssh_client=True)
连接