Paramiko 错误<lambda>retry_on_signal(lambda: sock.connect(addr)) TimeoutError: [Errno 110] 连接超时

问题描述 投票:0回答:1

我正在尝试复制在 Kubernetes 中运行的手动任务,在该任务中我访问 pod,然后通过 SFTP 到服务器,其中有我们需要的文件。唯一需要的是私钥,它存储在秘密。

@task
def get_files(config:Box):
    logger = prefect.utilities.logging.get_logger()

    from io import StringIO

    
    key = AKH.get_secret_value(config.primary_kv_url, 'id-rsa-private-key')
    private_k = StringIO(key)
    
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    mykey = paramiko.RSAKey.from_private_key(private_k)
    ssh.connect(hostname='foreignhost.com',username='clouseau', pkey=mykey, port=22)

等待大约 90 秒后,我收到此错误

.venv/lib/python3.10/site-packages/paramiko/client.py", line 358, in <lambda>
    retry_on_signal(lambda: sock.connect(addr))

我不确定它是否已连接,所以任何帮助都会很棒,谢谢。

python-3.x ssh paramiko
1个回答
0
投票

也许添加一些调试行来检查秘密值是否正确。

如果 Pod 中有可用的 netcat,请使用以下命令检查连接:

nc -v foreignhost.com 22

© www.soinside.com 2019 - 2024. All rights reserved.