2017-04-11 19 views
1

私はsftp接続を確立するためにpysftpを使ってPythonスクリプトを作成しています。このスクリプトはWindows(Server 2012R2)で実行されます。私がインストールしたpysftpのバージョンにはホストキーが必要なので、ベンダーに連絡して公開キーを取得しました。私が理解できないことは、私のpysftp接続でこの公開鍵を使用する方法です。私はpysftp 0.2.9で新しいプロパティ(remote_server_key)があることを理解していますが、使用方法の例は見つからず、使用できません。cnopts.hostkeys = nonepysftpでパブリックsshキーをロード/使用する例を探しています

誰でも使用方法の例はありますか? sftpサーバ/ホスト用の特定の公開鍵を統合しますか?

私の接続のプライベートキー/パブリックペアではありません(私はそれらのキーがあり、正常に動作しています) - これはホストの公開鍵に関するものです。

+0

これについても例を探しています。今まで運がない。 –

+0

あなたはまったく詳しく説明できますか? –

+0

はい、下記の「回答」の回避策を掲載しました。あなたを助けることを願っています! –

答えて

0

だから、私は回避策でこれに「答える」つもりです。私がやったことは、paramiko/pysftpの "予想される"場所にあるknown_hostsファイルに相当するファイルを作成することでした。

まず、known_hostsファイルを生成します。単純なパラメータは、sftpホストのFQDN(またはIPアドレス)と、接続先のサーバの公開鍵です。

例:

sftp.myserver.com ssh-rsa AAB3nzawerdvDLGiyasdf... 

あなたは、ファイルが作成されたことを持っている(とknown_hostsファイルを命名)したら誰だろう、ユーザのホームディレクトリのルートに.sshディレクトリを作成するために、昇格したコマンドプロンプトまたはPowerShellセッションを使用しますスクリプトを実行している。

cd c:\Users\serviceaccount 

md .ssh 

次に、known_hostsファイルをそのディレクトリにコピーします。

import pysftp 
cnopts = psyftp.CnOpts() 
sftpConnect = pysftp.Connection(host="sftp.myserver.com", username="myusername", private_key="c:\\path\to\my\openssh.key", private_key_pass="randompassword", port=22, cnopts=cnopts) 

ちょうど今私の仕事:

は、今すぐあなたのpysftpセッションを設定します。

+0

'private_key_pass'変数はどこから得られますか?私はあなたがホストによって提供される公開SSHキーを使用していると仮定しています。 –

+0

パブリックキーとプライベートキーのペアを生成するためにputty keygenを使用し、その公開鍵を受信者に共有しました。 –

関連する問題