Como criar um arquivo hosts conhecido? [duplicado]
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...8MZ
no 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
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.
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 hostname
ele 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.