【发布时间】:2021-11-01 23:08:59
【问题描述】:
我有~/.ssh/config,内容如下
Host hostname
HostName [REDACTED]
User ubuntu
IdentityFile ~/.ssh/google_compute_engine
我可以在终端中使用 with no problem
连接这个主机ssh hostname
不幸的是,paramiko 似乎无法读取 ~/.ssh/config
DOCKER_HOST="ssh://hostname" docker-compose up -d
Traceback (most recent call last):
File "/usr/bin/docker-compose", line 11, in <module>
load_entry_point('docker-compose==1.25.0', 'console_scripts', 'docker-compose')()
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 72, in main
command()
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 125, in perform_command
project = project_from_options('.', options)
File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 53, in project_from_options
return get_project(
File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 145, in get_project
client = get_client(
File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 116, in get_client
client = docker_client(
File "/usr/lib/python3/dist-packages/compose/cli/docker_client.py", line 127, in docker_client
client = APIClient(**kwargs)
File "/usr/lib/python3/dist-packages/docker/api/client.py", line 165, in __init__
self._custom_adapter = SSHHTTPAdapter(
File "/usr/lib/python3/dist-packages/docker/transport/sshconn.py", line 84, in __init__
self._connect()
File "/usr/lib/python3/dist-packages/docker/transport/sshconn.py", line 93, in _connect
self.ssh_client.connect(
File "/usr/lib/python3/dist-packages/paramiko/client.py", line 340, in connect
to_try = list(self._families_and_addresses(hostname, port))
File "/usr/lib/python3/dist-packages/paramiko/client.py", line 203, in _families_and_addresses
addrinfos = socket.getaddrinfo(
File "/usr/lib/python3.8/socket.py", line 918, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known
有什么方法可以连接吗?
更新
如果我使用
DOCKER_CERT_PATH=~/.ssh/google_compute_engine DOCKER_HOST="ssh://hostname" docker-compose up -d
我收到了错误
Traceback (most recent call last):
File "/usr/bin/docker-compose", line 11, in <module>
load_entry_point('docker-compose==1.25.0', 'console_scripts', 'docker-compose')()
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 72, in main
command()
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 125, in perform_command
project = project_from_options('.', options)
File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 59, in project_from_options
tls_config=tls_config_from_options(options, environment),
File "/usr/lib/python3/dist-packages/compose/cli/docker_client.py", line 81, in tls_config_from_options
return TLSConfig(
File "/usr/lib/python3/dist-packages/docker/tls.py", line 80, in __init__
raise errors.TLSParameterError(
docker.errors.TLSParameterError: Path to a certificate and key files must be provided through the client_config param. TLS configurations should map the Docker CLI client configurations. See https://docs.docker.com/engine/articles/https/ for API details.
【问题讨论】: