既知のhostsファイルを作成するにはどうすればよいですか?[複製]

Dec 15 2020

Pythonを使用してSFTPサイトに接続しようとしていますが、known_hostsファイルがWindows10マシンに存在しません。オンラインで、サーバーに最初に接続したときにホストキーが表示されることがわかりました。https://winscp.net/eng/docs/ssh_verifying_the_host_key

これをPythonコードで使用できるknown_hostsファイルに変換するにはどうすればよいですか?

hostname ssh-rsa 2EP...8MZ上記の例のようなファイルを作成しようとしましたが、無効なホストキーエラーが表示されます:Error('Incorrect padding'))

ありがとうございました。

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

回答

TheDevKiller Dec 15 2020 at 21:28

まず、使用しているプロトコルを本当に知りたいと思うでしょう。あなたの質問では、FTPについて何度も言及しましたが、コードとあなたが話している概念(known_hosts)はSFTPのものです。

FTPとSFTPは2つの完全に異なるプロトコルであり、FTPはクライアントとサーバー間でファイルを転送するためのものであり、SFTPはSSHクライアントとサーバー間でファイルを移動するためのものです。

SaltyLeaguePlayer Dec 15 2020 at 23:03

解決しました!!! したがって、私はWindowsを使用しており、sftp転送にFileZillaとWinScpを使用していますが、C:\ Users .... sshファイルは私が知る限り存在していません。WindowsSSHクライアントをダウンロードしました。https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built-in-ssh-commands/

次に、PowerShellを使用してサーバーに接続しました。コマンドを入力するssh hostnameと、RSAフィンガープリントが表示され、接続するかどうかが尋ねられます。「はい」と入力すると、「警告:既知のホストのリストに「恒久的に追加された」ホスト名」が返されます。.sshファイルがC:\ Users .... sshディレクトリに表示されます。これは、Pythonで参照できます。

ありがとうございました。