¿Cómo crear un archivo de hosts conocido? [duplicar]
Estoy tratando de conectarme a un sitio SFTP usando python pero el archivo known_hosts no existe en mi máquina con Windows 10. Encontré en línea que la clave de host aparece cuando se conecta por primera vez al servidor:https://winscp.net/eng/docs/ssh_verifying_the_host_key
¿Cómo convierto esto en un archivo known_hosts que puedo usar en mi código Python?
Intenté crear un archivo como: hostname ssh-rsa 2EP...8MZ
en el ejemplo anterior, pero recibo un error de clave de host no válido:Error('Incorrect padding'))
Gracias.
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()
Respuestas
Primero querrá saber realmente qué protocolo está utilizando. En su pregunta mencionó varias veces FTP, y su código + el concepto del que está hablando (known_hosts) son cosas SFTP.
FTP y SFTP son dos protocolos completamente diferentes, FTP es uno para transferir archivos entre un cliente y un servidor y SFTP para mover archivos entre un cliente SSH y un servidor.
SOLUCIONADO !!! Así que estoy en Windows y uso FileZilla y WinScp para transferencias sftp, pero el archivo C: \ Users .... ssh nunca ha existido hasta donde yo sé. Descargué el cliente SSH de Windows:https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built-in-ssh-commands/
Y luego usó PowerShell para conectarse al servidor. Cuando ingrese el comando: ssh hostname
indicará la huella digital RSA y le preguntará si desea conectarse. Ingrese Sí y devolverá "Advertencia: Se agregó permanentemente 'nombre de host' a la lista de hosts conocidos. El archivo .ssh aparecerá en su directorio C: \ Users .... ssh. Esto puede ser referenciado en Python.
Gracias.