我目前正在尝试使用dockerpy sdk连接到我的远程ubuntu服务器,这样我就可以通过python管理我的码头容器。
在尝试这样做的时候,我遇到了一些问题。
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
我的想法已经用完了,我不知道该如何解决这个问题?
事先非常感谢..。
发布于 2022-10-31 23:31:47
可以像Piere 回答在这里先生那样建立联系。即使是关于docker.client.DockerClient的问题,它在引擎盖下使用了docker.api.client.APIClient。
您正在尝试使用密码身份验证来建立连接,这就是您要求提示密码的原因。我想您需要配置基于密钥的SSH登录,就像码头医生中所说的那样。
修复步骤:
~/.ssh/config
ssh user@ip
的情况下建立连接client = docker. APIClient(base_url="ssh://user@ip", use_ssh_client=True)
连接https://stackoverflow.com/questions/74241484
复制相似问题