Как создать файл известных хостов? [дубликат]

Dec 15 2020

Я пытаюсь подключиться к сайту SFTP с помощью python, но файл known_hosts не существует на моем компьютере с Windows 10. Я обнаружил в сети, что ключ хоста появляется при первом подключении к серверу:https://winscp.net/eng/docs/ssh_verifying_the_host_key

Как мне преобразовать это в файл known_hosts, который я могу использовать в моем коде Python?

Я попытался создать файл вроде: hostname ssh-rsa 2EP...8MZв приведенном выше примере, но получаю ошибку неверного ключа хоста:Error('Incorrect padding'))

Спасибо.

import pysftp

cnopts = pysftp.CnOpts(knownhosts='C:\\Users\\Documents\\known_hosts')

with pysftp.Connection('xxx',username='xxx', password='xxx',cnopts=cnopts) as sftp:
    localpath='TEST.txt'
    remotepath='TEST.txt'
    sftp.put(localpath,remotepath)
    sftp.close()

Ответы

TheDevKiller Dec 15 2020 at 21:28

Сначала вам нужно действительно знать, какой протокол вы используете. В своем вопросе вы несколько раз упомянули FTP, и ваш код + концепция, о которой вы говорите (known_hosts), являются вещами SFTP.

FTP и SFTP - это два совершенно разных протокола, FTP - это один для передачи файлов между клиентом и сервером, а SFTP - для перемещения файлов между SSH-клиентом и сервером.

SaltyLeaguePlayer Dec 15 2020 at 23:03

РЕШЕНО !!! Итак, я использую Windows и использую FileZilla и WinScp для передачи sftp, но файл C: \ Users .... ssh никогда не существовал, насколько мне известно. Я скачал SSH-клиент Windows:https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built-in-ssh-commands/

А затем использовал PowerShell для подключения к серверу. Когда вы вводите команду: ssh hostnameон укажет отпечаток RSA и спросит, хотите ли вы подключиться. Введите "Да", и он вернет "Предупреждение:" Имя хоста "постоянно добавлено в список известных хостов. Файл .ssh появится в вашем каталоге C: \ Users .... ssh. На него можно будет ссылаться в python.

Спасибо.