You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Paramiko实现OpenSSH ssh -J命令等效功能并解决连接异常?

将OpenSSH跳转SSH命令转换为Paramiko代码时遇到的问题

原OpenSSH命令与SSH配置

我尝试将以下OpenSSH命令转换为Paramiko库的Python代码:

sshpass -p SomePassword ssh -J specificSshHost admin@11.0.0.0 \
    -oHostKeyAlgorithms=+ssh-rsa \
    -oKexAlgorithms=+diffie-hellman-group1-sha1 \
    -o "StrictHostKeyChecking no"

其中specificSshHost对应.ssh/config中的配置:

Host specificSshHost
  User admin
  IdentityFile ~/.ssh/mySpecificRsaKey

编写的Paramiko代码

我已编写如下代码:

import paramiko
import os
client = paramiko.SSHClient()
client.load_host_keys("/home/name/.ssh/mySpecificRsaKey")
user = 'admin'
pswd = 'SomePassword'
ssh_keypath = ".ssh/mySpecificSshHost"
REMOTE_SERVER_IP = "11.0.0.0"
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=str(REMOTE_SERVER_IP), username=user,
               key_filename=ssh_keypath)

遇到的错误信息

运行代码后出现Paramiko日志错误:

INFO:paramiko.hostkeys:Not enough fields found in known_hosts in line 26 ('xPuIyxnS2aQoUvDVyCtJEJ47P6nH8su/bDGj6hrS1GBOFYLrCu4LBQ==')
INFO:paramiko.hostkeys:Unable to handle key of type RSA

且connect命令一直挂起,触发KeyboardInterrupt后得到如下调用栈:

File "/tmp/ipykernel_202149/1488139442.py", line 36, in <module>
    client.connect(hostname=str(REMOTE_SERVER_IP), username =str(user),

  File "/home/david/miniconda3/lib/python3.9/site-packages/paramiko/client.py", line 358, in connect
    retry_on_signal(lambda: sock.connect(addr))

  File "/home/david/miniconda3/lib/python3.9/site-packages/paramiko/util.py", line 279, in retry_on_signal
    return function()

  File "/home/david/miniconda3/lib/python3.9/site-packages/paramiko/client.py", line 358, in <lambda>
    retry_on_signal(lambda: sock.connect(addr))

疑问

已知Paramiko支持RSA及相关算法,请问为何会出现这些问题?

内容的提问来源于stack exchange,提问作者DaveR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:25:12