Bilinen bir ana bilgisayar dosyası nasıl oluşturulur? [çiftleme]

Dec 15 2020

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

TheDevKiller Dec 15 2020 at 21:28

Ö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.

SaltyLeaguePlayer Dec 15 2020 at 23:03

ÇÖ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.