Как создать файл известных хостов? [дубликат]
Я пытаюсь подключиться к сайту 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()
Ответы
Сначала вам нужно действительно знать, какой протокол вы используете. В своем вопросе вы несколько раз упомянули FTP, и ваш код + концепция, о которой вы говорите (known_hosts), являются вещами SFTP.
FTP и SFTP - это два совершенно разных протокола, FTP - это один для передачи файлов между клиентом и сервером, а SFTP - для перемещения файлов между SSH-клиентом и сервером.
РЕШЕНО !!! Итак, я использую 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.
Спасибо.