Como criar um arquivo hosts conhecido? [duplicado]

Dec 15 2020

Estou tentando me conectar a um site SFTP usando python, mas o arquivo known_hosts não existe na minha máquina Windows 10. Descobri online que a chave do host aparece na primeira vez em que me conecto ao servidor:https://winscp.net/eng/docs/ssh_verifying_the_host_key

Como faço para converter isso em um arquivo known_hosts que posso usar em meu código python?

Tentei criar um arquivo como: hostname ssh-rsa 2EP...8MZno exemplo acima, mas recebo um erro de chave de host inválida:Error('Incorrect padding'))

Obrigado.

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()

Respostas

TheDevKiller Dec 15 2020 at 21:28

Primeiro, você vai querer saber realmente qual protocolo está usando. Em sua pergunta, você mencionou várias vezes o FTP, e seu código + o conceito de que está falando (known_hosts) são coisas SFTP.

FTP e SFTP são dois protocolos completamente diferentes, sendo o FTP um para a transferência de arquivos entre um cliente e um servidor e o SFTP para mover arquivos entre um cliente SSH e um servidor.

SaltyLeaguePlayer Dec 15 2020 at 23:03

RESOLVIDO !!! Portanto, estou no Windows e uso FileZilla e WinScp para transferências sftp, mas o arquivo C: \ Users .... ssh nunca existiu, pelo que sei. Eu baixei o cliente SSH do Windows:https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built-in-ssh-commands/

E então usei o PowerShell para se conectar ao servidor. Quando você insere o comando: ssh hostnameele indica a impressão digital RSA e pergunta se você deseja se conectar. Digite Sim e ele retornará "Aviso: 'nome do host' adicionado permanentemente à lista de hosts conhecidos. O arquivo .ssh aparecerá em seu diretório C: \ Usuários .... ssh. Isso pode então ser referenciado em python.

Obrigado.