1

我正在尝试使用 paramiko 建立 sftp 连接并使用主机密钥指纹验证 ssh 连接。主机密钥已提供给我,格式如下:

SHA256:lZ4rtJE62SWt6P+AS5q0+JZrpG/5Mejdm7sL/cvy4A8=

import paramiko
from base64 decodebytes

fingerprint = b'lZ4rtJE62SWt6P+AS5q0+JZrpG/5Mejdm7sL/cvy4A8='
host_key = paramiko.RSAKey(data=decodebytes(fingerprint))

这导致: UnicodeDecodeError:'utf-8' codec can't decode byte 0x8a in position 2: invalid start byte

使用 FileZilla 连接我可以看到 Hostkey 算法是ssh-rsa 2048.

谁能帮我RSAKey从提供的 SHA256 指纹创建,以便我可以使用以下方法连接和验证主机:

ssh = paramiko.SSHClient()
ssh.get_host_keys().add(hostname=my_host_name, keytype=host_key.get_name(), key=host_key)
ssh.connect(hostname=my_host_name, port=22, username=my_user_name, pkey=my_private_key)
sftp = ssh.open_sftp()

有几点需要注意:

  1. 我已经要求使用主机公钥,但这不是即将到来的。显然是由于 SFTP 服务器被托管为“AWS Transfer Family”服务,该服务仅提供服务器主机密钥。
  2. 由于组织政策(太旧),我无法使用 pysftp。
4

0 回答 0