Я пытаюсь установить соединение sftp с помощью модуля pysftp в блокноте databricks. Вот код, который я написал.
import pysftp as sftp
HOSTNAME = my_sftp_hostname
USERNAME = my_sftp_username
PASSWORD = my_sftp_password
FOLDER = dir_to_be_accessed_in
print('HOSTNAME : '+HOSTNAME )
print('USERNAME : '+USERNAME )
print('PASSWORD : '+PASSWORD )
print('FOLDER : '+FOLDER )
cnopts = sftp.CnOpts()
cnopts.hostkeys = None
con = sftp.Connection(HOSTNAME,username=USERNAME,password=PASSWORD, cnopts=cnopts)
print(con)
Но когда я запускаю этот код, я получаю эту ошибку TypeError: from_buffer () не может вернуть адрес необработанной строки в пределах байт или объект Unicode
/databricks/python/lib/python3.5/site-packages/pysftp/__init__.py:61: UserWarning: Failed to load HostKeys from /root/.ssh/known_hosts. You will need to explicitly load HostKeys (cnopts.hostkeys.load(filename)) or disableHostKey checking (cnopts.hostkeys = None).
warnings.warn(wmsg, UserWarning)
Unknown exception: from_buffer() cannot return the address of the raw string within a bytes or unicode object
Traceback (most recent call last):
File "/databricks/python/lib/python3.5/site-packages/paramiko/transport.py", line 2075, in run
self.kex_engine.parse_next(ptype, m)
File "/databricks/python/lib/python3.5/site-packages/paramiko/kex_ecdh_nist.py", line 53, in parse_next
return self._parse_kexecdh_reply(m)
File "/databricks/python/lib/python3.5/site-packages/paramiko/kex_ecdh_nist.py", line 136, in _parse_kexecdh_reply
self.transport._verify_key(K_S, sig)
File "/databricks/python/lib/python3.5/site-packages/paramiko/transport.py", line 1886, in _verify_key
if not key.verify_ssh_sig(self.H, Message(sig)):
File "/databricks/python/lib/python3.5/site-packages/paramiko/rsakey.py", line 134, in verify_ssh_sig
msg.get_binary(), data, padding.PKCS1v15(), hashes.SHA1()
File "/databricks/python/lib/python3.5/site-packages/cryptography/hazmat/backends/openssl/rsa.py", line 474, in verify
self._backend, data, algorithm
File "/databricks/python/lib/python3.5/site-packages/cryptography/hazmat/backends/openssl/utils.py", line 41, in _calculate_digest_and_algorithm
hash_ctx.update(data)
File "/databricks/python/lib/python3.5/site-packages/cryptography/hazmat/primitives/hashes.py", line 93, in update
self._ctx.update(data)
File "/databricks/python/lib/python3.5/site-packages/cryptography/hazmat/backends/openssl/hashes.py", line 50, in update
data_ptr = self._backend._ffi.from_buffer(data)
TypeError: from_buffer() cannot return the address of the raw string within a bytes or unicode object
Я прочитал несколько блогов, но не получил никаких конкретных результатов. Пожалуйста, дайте мне знать, если кто-то имеет какое-либо мнение по этому поводу.
Моя версия pysftp: 0.2.9 Paramiko versio: 2.7.1