糟糕,将 SFTP 与 Databricks 连接时出现未处理的类型 3 ('unimplemented') 错误

Oops, unhandled type 3 ('unimplemented') error while connecting SFTP with Databricks

我正在尝试从 python 中带有数据块的笔记本连接到 SFTP。我的笔记本看起来像这样:

import pysftp
import paramiko

# set parameters
host_name = 'xx.xxx.xxx.xxx' 
username = 'FTP_USERNAME' 
file_path_to_rsa_key = "/path/key_rsa" 
cnopts = pysftp.CnOpts() 
cnopts.hostkeys = None

# connect to SFTP
sftp = pysftp.Connection(host_name, username=username, private_key=file_path_to_rsa_key, cnopts=cnopts)
data = sftp.listdir()
sftp.close()

# Prints out the directories and files, line by line
for i in data:
    print(i)

我有以下错误:

Oops, unhandled type 3 ('unimplemented')

当运行以下块时:

try:
  conn = pysftp.Connection(host_name, username=username, private_key=file_path_to_rsa_key, cnopts=cnopts)
  print("connection established successfully")
except:
  print('failed to establish connection to targeted server')

它打印connection established successfully

这是什么意思?我应该怎么办? listdir() 有问题吗?

看来这个问题主要是因为 pysftp。我最终完全切换到 paramiko 并且一切正常。 SFTP 服务器修改了登录响应,pysftp 在可接受的响应中过于严格,无法顺利接受。当我尝试使用 non-RSA 私钥时,我注意到类似的事情,它直接对 ssh / sftp 工作正常,但对 pysftp.

这里还有一些有趣的信息