Я пишу програму за допомогою 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-пакети \ pysftp__init __. Py: 61: UserWarning:
Не вдалося завантажити HostKeys з C: \ Users \ JohnCalvin.ssh \ known_hosts.
Вам потрібно буде явно завантажити HostKeys (cnopts.hostkeys.load (ім'я файлу)) або відключити перевірку HostKey (cnopts.hostkeys = Немає). 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-пакети \ pysftp__init __. Py ", рядок 132, init self._tconnect ['hostkey'] = self._cnopts.get_hostkey (host) Файл "E: \ Program Files (x86) \ Anaconda3 \ lib \ site-пакети \ pysftp__init __. py", рядок 71, в get_hostkey підняти SSHException (" Не знайдено хост-клавішу для хосту% s. "% Host) paramiko.ssh_exception.SSHException: Не знайдено хост-клавішу для хосту 138.99.99.129. Виняток проігноровано у:> Traceback (останній виклик останній): Файл "E: \ Program Files (x86) \ Anaconda3 \ lib \ site-пакети \ pysftp__init __. Py", рядок 1013, у файлі del self.close () "E : \ Program Files (x86) \ Anaconda3 \ lib \ site-пакети \ pysftp__init __. Py ", рядок 784, у тісноті, якщо self._sftp_live: AttributeError: 'Connection' об'єкт не має атрибута '_sftp_live'
pysftp