web-dev-qa-db-ja.com

暗号と鍵交換を使用したSFTP

以前は、次のように構成された.txtファイルを使用してファイルにアクセスして転送していました(SSIS実行プロセスタスク)。

option batch on
option confirm off
open sftp://Username:[email protected]:22  -hostkey="ssh-rsa 2222 00:00:00:00:00:0c:00:ee:e0:00:0d:0e:b0:0a:00:00"
option transfer binary
Put -nopermissions -resumesupport=Off   -nopreservetime E:\path.txt /Inbound/path/

ここで、新しいSFTP構造(サイト名:hostname.comおよびIPアドレス100.00.000.000)を使用するように指示されました。

たとえば、暗号と鍵交換のリストが提供されます:ECDHE-RSA-AES000-GCM-SHA000(Key Exchange = ECDH; Auth = RSA)(セキュリティ上の理由から一部の文字を変更しました)

この新しい方法を使用するように.txtファイルを変更するにはどうすればよいですか?

2
Kim Avery

@Kimがすでにコメントしているように、ECDHE-RSA-AES***-GCM-SHA***はTLS/SSL暗号スイートです。 TLS/SSLはFTP(S)によって使用されます。 SFTPはSSHを使用しますが。

スクリプトファイルは WinSCPスクリプト のようになります。

WinSCP SFTPとFTP(S)の両方をサポートします。

openコマンドftpes://の代わりに sftp:// を使用するように変更するだけです。さらに、ポート番号は異なりますが、FTP(S)サーバーが標準ポートを使用していると仮定しましょう。また、-hostkeyはFTPSには関係ありません。

open ftpes://username:[email protected]/

スクリプトの残りの部分は同じままである可​​能性があります。リモートパス(/Inbound/path/)も更新が必要になる可能性がありますが。


SFTPとは異なり、FTPはSSISによってネイティブにサポートされていることに注意してください。したがって、ネイティブSSISFTPタスクも使用できます。しかし、これは単純なWinSCPスクリプトの更新よりも大きな変更です。

2
Martin Prikryl

したがって、WinSCPの更新バージョンは5.17.5でした。ファイルの転送元のサーバーのIPアドレスが、受信サーバーのホワイトリストに追加されました。次に、ホスト名ユーザー名/パスワード(私の場合はポート22)と入力して、WinSCPのUIを介して受信サーバーに接続できます。 詳細設定ディレクトリパスを追加しましたSSH /キー交換確認しました[〜#〜] ecdh [〜# 〜]鍵交換はリストの一番上にあり、[〜#〜] rsa [〜#〜]ベースは2番目でした。ログインに成功しました。次に、セッションタブ--RL /コードの生成に移動し、チェックされたSSHホストキー(グレー表示されていない場合)、次にScriptタブを押すと、そのセッション中に使用している最初のopenコマンドが表示されます。これにより、これまで使用してきたMD5の代わりに、ホストキーのSHA-256フィンガープリントが提供されます。クリップボードにコピーし、これをスクリプトのOpen行として使用しました。例:

Option batch On
Option confirm Off

open sftp://Username:[email protected]/ -hostkey="ssh-rsa 2048 k8L86hrEaiZI+v/fxxxxx/Igxxxxxxx/iF1iKzI=" -rawsettings KEX="ecdh,rsa,dh-gex-sha1,dh-group14-sha1,WARN,dh-group1-sha1"

# Your command 1
# Your command 2
Close
exit

これで、スクリプトが実行され、ファイルが転送されます。

1
Kim Avery