Я пишу программу с использованием pysftp, и она хочет проверить ключ хоста SSH на C:\Users\JohnCalvin\.ssh\known_hosts
.
Используя PuTTY, программа терминала сохраняет его в реестре [HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys]
.
Как примирить разницу между pysftp и PuTTY?
Мой код:
import pysftp as sftp
def push_file_to_server():
s = sftp.Connection(host='138.99.99.129', username='root', password='*********')
local_path = "testme.txt"
remote_path = "/home/testme.txt"
s.put(local_path, remote_path)
s.close()
push_file_to_server()
Ответ на ошибку, который я получаю:
E:\Program Files (x86)\Anaconda3\lib\site-packages\pysftp__init __. py: 61: UserWarning:
Не удалось загрузить HostKeys из C:\Users\JohnCalvin.ssh\known_hosts.
Вам нужно будет явно загрузить HostKeys (cnopts.hostkeys.load(filename)) или отключить проверкуHostKey (cnopts.hostkeys = None). warnings.warn(wmsg, UserWarning) Traceback (последний последний вызов): Файл "E:\OneDrive\Python\GIT\DigitalCloud\pysftp_tutorial.py", строка 14, в push_file_to_server() Файл "E:\OneDrive\Python\GIT\DigitalCloud\pysftp_tutorial.py", строка 7, в push_file_to_server s = sftp.Connection(host = '138.99.99.129', username = 'root', password = '********') Файл "E:\Program Files" (x86)\Anaconda3\lib\site-packages\pysftp__init __. py ", строка 132, в INIT self._tconnect ['hostkey'] = self._cnopts.get_hostkey (host) Файл "E:\Program Files" (x86)\Anaconda3\lib\site-packages\pysftp__init __. py ", строка 71, в get_hostkey raise SSHException ( "Нет хоста для хоста% s найдено".% host) paramiko.ssh_exception.SSHException: Нет хоста для хоста 138.99.99.129 найденный. Исключение игнорируется в: > Traceback (большинство последний последний вызов): Файл "E:\Program Files" (x86)\Anaconda3\lib\site-packages\pysftp__init __. py ", строка 1013, в дель self.close() Файл" E:\Program Files (x86)\Anaconda3\lib\site-packages\pysftp__init __. py ", строка 784, в Закрыть if self._sftp_live: AttributeError: объект" Connection "не имеет атрибута" _sftp_live"