以前は、次のように構成された.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ファイルを変更するにはどうすればよいですか?
@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スクリプトの更新よりも大きな変更です。
したがって、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
これで、スクリプトが実行され、ファイルが転送されます。