Bilinen bir ana bilgisayar dosyası nasıl oluşturulur? [çiftleme]
Python kullanarak bir SFTP sitesine bağlanmaya çalışıyorum, ancak bilinen_hosts dosyası Windows 10 makinemde mevcut değil. Sunucuya ilk bağlanırken ana bilgisayar anahtarının göründüğünü çevrimiçi buldum:https://winscp.net/eng/docs/ssh_verifying_the_host_key
Bunu python kodumda kullanabileceğim bir bilinen_hosts dosyasına nasıl dönüştürebilirim?
hostname ssh-rsa 2EP...8MZYukarıdaki örnekte şuna benzer bir dosya oluşturmayı denedim , ancak geçersiz bir ana bilgisayar anahtarı hatası alıyorum:Error('Incorrect padding'))
Teşekkür ederim.
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()
Yanıtlar
Öncelikle hangi protokolü kullandığınızı gerçekten bilmek isteyeceksiniz. Sorunuzda birden çok kez FTP'den bahsettiniz ve kodunuz + bahsettiğiniz kavram (bilinen_host'lar) SFTP şeyleridir.
FTP ve SFTP, tamamen farklı iki protokoldür; FTP, bir istemci ile sunucu arasında dosya aktarımı için bir protokoldür ve dosyaları bir SSH istemcisi ile sunucu arasında taşımak için SFTP'dir.
ÇÖZÜLDÜ !!! Bu yüzden Windows'tayım ve sftp aktarımları için FileZilla ve WinScp kullanıyorum, ancak C: \ Users .... ssh dosyası bildiğim kadarıyla hiç var olmadı. Windows SSH istemcisini indirdim:https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built-in-ssh-commands/
Ve sonra sunucuya bağlanmak için PowerShell'i kullandı. Komutu girdiğinizde: ssh hostnameRSA parmak izini belirtir ve bağlanmak isteyip istemediğinizi sorar. Evet girin ve "Uyarı: Bilinen ana bilgisayarlar listesine kalıcı olarak 'ana bilgisayar adı' eklendi. Daha sonra .ssh dosyası C: \ Users .... ssh dizininizde görünecektir. Bu daha sonra python'da gösterilebilir.
Teşekkür ederim.