SFTP 配接器

BizTalk Server包含SFTP配接器,可使用 SSH 檔案傳輸通訊協定從安全 FTP 伺服器傳送和接收訊息。 本主題包含設定 SFTP 接收位置的步驟,以及設定 SFTP 傳送埠,以從安全的 FTP 伺服器接收和傳送訊息。 它也包含常見問題和解答。

必要條件

從 BizTalk Server 2016 開始,SFTP 配接器會使用 WinSCP 來連線到 SFTP,因此支援較大的 SFTP 伺服器範圍。 在BizTalk Server執行時間下載WinSCP。 請務必檢查每個BizTalk Server verison 支援的 WinSCP 版本:

  • BizTalk Server 2020 與 CU1 或 CU2 - WinSCP 5.17.6 版
  • BizTalk Server 2020 - WinSCP 5.15.4 版
  • BizTalk Server 2016 與 CU9 - WinSCP 5.19.2 版
  • BizTalk Server 2016 含 CU7 - WinSCP 5.15.9 版
  • BizTalk Server 2016 - WinSCP 5.7.7 版

或在硬體和軟體需求

BizTalk Server 2013 和 BizTalk Server 2013 R2 使用較舊的 ssh 程式庫,而不是具有有限伺服器相容性的 WinSCP。

設定接收位置

注意

建立接收位置之前,您必須先新增單向接收埠。 如需特定步驟,請參閱 建立接收埠

  1. 在 [BizTalk Server管理主控台] 中,依序展開 [BizTalk Server]、[BizTalk 群組]、[應用程式],然後展開您要建立接收位置的應用程式。

  2. 在左窗格中按一下 [接收埠] 節點,在右窗格中以滑鼠右鍵按一下您想與新接收位置建立關聯的接收埠,然後按一下 [屬性]

  3. 在 [ 接收埠內容 ] 對話方塊的左窗格中,選取 [ 接收位置],然後在右窗格中按一下 [ 新增 ] 以建立新的接收位置。

  4. 在 [接收位置屬性]對話方塊的 [傳輸] 區段中,從 [類型] 下拉式清單中選取[SFTP],然後按一下 [設定] 來設定接收位置的傳輸屬性。

  5. SFTP 傳輸屬性中,執行下列動作:

    其他

    使用 作法
    連線限制 指定伺服器最多可以開啟的並行連線數目。

    此設定是每部伺服器和每個接收位置。 請考慮下列案例:

    - 有兩個具有相同組態屬性值的接收位置,包括設定為相同值的 ConnectionLimit 屬性。 例如,屬性會設定為 6。 在此情況下,有一個連線集區 (兩個接收位置所使用的 6 個可用連線) 。

    - 設定相同的組態值有兩個接收位置,並將 ConnectionLimit 屬性設定為不同的值。 例如,ReceiveLocation1 屬性設定為 6,而 ReceiveLocation2 屬性設定為 5。 在此情況下,每個接收位置都有自己的連線集區,並有自己的可用連線。 ReceiveLocation1 連線集區有 6 個可用的連線。 ReceiveLocation2 連線集區有 5 個可用的連線。
    記錄 從 BizTalk Server 2016 開始提供。

    輸入建立用戶端記錄檔的完整路徑。 使用此記錄檔來針對任何錯誤進行疑難排解。
    連線重複使用時間上限,以秒為單位 從 BizTalk Server 2016 CU 7 開始提供。

    連線重複使用時間上限可讓連線在連線在特定時間內正常關閉,並從集區中移除。 值為 0 或更少表示此行為已停用。

    輪詢

    使用 作法
    啟用時間戳記比較 從 BizTalk Server 2016 累積更新 6 開始提供。

    如果 [下載後保留] 設定為 True,這個屬性會決定檔案時間戳記中的變更是否會觸發檔案的重新下載。

    預設值:
    輪詢間隔 指定配接器輪詢伺服器的間隔。 若要連續輪詢,請將此值設為零。

    預設值: 5
    重新下載間隔 從 BizTalk Server 2016 累積更新 6 開始提供。

    指定檔案將再次下載的間隔。 如果 [下載後保留] 為 True,且 [啟用時間戳記比較 ] 設定為 False,則適用。 如果設定為 -1,將不會再次下載檔案。

    預設值: 0

    -1 表示配接器將不會再次下載檔案。

    0 表示配接器會在每個輪詢循環下載檔案一次。
    下載後保留 從 BizTalk Server 2016 累積更新 6 開始提供。

    指定配接器是否會在下載檔案之後保留 SFTP 伺服器的檔案。

    預設值:
    單位 指定用於指定輪詢間隔的單位,例如:秒、分鐘、小時或天。

    預設值:

    Proxy (從 BizTalk Server 2013 R2) 開始可用

    使用 作法
    位址 指定 Proxy 伺服器的 DNS 名稱或 IP 位址。
    密碼 指定 Proxy 伺服器的密碼。
    連接埠 指定 Proxy 伺服器的連接埠。
    類型 指定 Proxy 伺服器使用的通訊協定。
    使用者名稱 指定 Proxy 伺服器的使用者名稱。

    安全性

    使用 作法
    接受任何 SSH 伺服器主機金鑰 為 True時,接收位置會接受來自伺服器的任何 SSH 公用主機金鑰。 當 為 False時,接收位置會使用伺服器的指紋進行驗證。 您會在 SSHServerHostKeyFingerPrint 屬性中輸入指紋。

    預設值:
    用戶端驗證模式 選取接收位置用來向 SSH 伺服器驗證用戶端的驗證方法。 如果設定為 [密碼],您必須在 Password 屬性中輸入值。 如果設定為 PublicKeyAuthentication,您必須在 PrivateKey 屬性中輸入使用者的私密金鑰。 如果設定為MultiFactorAuthentication,您必須使用其PasswordPrivateKey輸入Username。 此外,如果私密金鑰受到密碼保護,請輸入 密碼以及 PrivateKeyPassword 屬性的密碼。

    預設值: 密碼
    加密加密 從 BizTalk Server 2013 R2 開始提供。

    輸入加密加密的類型。

    BizTalk Server 2013 R2 選項:Auto、AES 和 TripleDES

    BizTalk Server 2016 選項:Auto、AES、Arcfour、Fishfish、TripleDES 和 DES
    金鑰交換演算法選取原則 從 BizTalk Server 2016 累積更新 6 開始提供。

    指定 KEX 喜好設定順序的逗號分隔清單。 Token WARN 可用來分隔子標準 KEX。 BizTalk SFTP 配接器將不會使用 WARN 之後的任何專案。 範例:ecdh、dh-gex-sha1、dh-group14-sha1、rsa、WARN、dh-group1-sha1。 如需最新資訊,請造訪 WinSCP 網站。
    密碼 如果您將 ClientAuthenticationMode 設定為 Password,請指定 SFTP 使用者 密碼
    私密金鑰 如果您將 ClientAuthenticationMode 設定為 PublicKeyAuthentication,請指定 SFTP 使用者的私密金鑰。

    注意: 私密金鑰檔案必須是指定的 .ppk 檔案。
    私密金鑰密碼 如果 PrivateKey 屬性中指定的金鑰需要,請指定私密金鑰密碼。
    SSH 伺服器主機金鑰手指指紋 指定 SSH 伺服器的公開金鑰指紋。
    SSO 分支機構 從 BizTalk Server 2020 開始提供。

    指定「企業單一登入」分支機構應用程式。
    使用者名稱 指定要登入 SFTP 伺服器的使用者名稱。

    SSH 伺服器

    使用 作法
    檔案遮罩 指定從安全 FTP 伺服器擷取檔案時要使用的檔案遮罩。 若要改善效能,請更具體地避免嘗試下載其他受保護的檔案。
    資料夾路徑 指定在安全 FTP 伺服器上接收位置可以擷取檔案的資料夾路徑。 若要改善效能,請避免使用含有您未收到許多檔案的資料夾。
    連接埠 指定進行檔案傳輸的安全 FTP 伺服器上的連接埠位址。
    伺服器位址 指定安全 FTP 伺服器的伺服器名稱或 IP 位址。
  6. 按一下 [確定]。

  7. [接收位置屬性] 對話方塊中輸入適當的值,以完成接收位置的組態,然後按一下 [確定] 儲存設定值。 如需 [ 接收位置屬性 ] 對話方塊的詳細資訊,請參閱 建立接收位置

設定傳送埠

  1. 在 BizTalk Server 管理主控台中,建立新的傳送埠,或按兩下現有的傳送埠加以修改。 如需詳細資訊,請參閱 建立傳送埠。 設定所有傳送埠選項,並在 [一般] 索引標籤的 [傳輸] 區段中指定 [類型]選項的SFTP

  2. 在 [ 一般] 索引標籤的 [ 傳輸 ] 區段中,按一下 [ 設定 ] 按鈕。

  3. SFTP 傳輸屬性中,輸入下列專案:

    其他

    使用 作法
    連線限制 指定伺服器最多可以開啟的並行連線數目。
    記錄 從 BizTalk Server 2016 開始提供。

    輸入建立用戶端記錄檔的完整路徑。 使用此記錄檔來針對任何錯誤進行疑難排解。
    連線重複使用時間上限,以秒為單位 從 BizTalk Server 2016 CU 7 開始提供。

    連線重複使用時間上限可讓連線在連線使用特定時間之後,正常關閉並從集區中移除連線。 值為 0 或更少表示此行為已停用。
    暫存資料夾 從 BizTalk Server 2013 R2 開始提供。

    在能夠自動移到相同伺服器上的必須位置前,會將大型檔案上傳到 SFTP 伺服器中的暫時資料夾

    BizTalk Server 2013 R2) 開始,可以使用 Proxy (

    使用 作法
    位址 指定 Proxy 伺服器的 DNS 名稱或 IP 位址。
    密碼 指定 Proxy 伺服器的密碼。
    連接埠 指定 Proxy 伺服器的連接埠。
    類型 指定 Proxy 伺服器使用的通訊協定。
    使用者名稱 指定 Proxy 伺服器的使用者名稱。

    安全性

    使用 作法
    存取任何 SSH 伺服器主機金鑰 為 True時,傳送埠會接受來自伺服器的任何 SSH 公用主機金鑰。 當 為 False時,埠會比對主機金鑰與 SSHServerHostKey 屬性中指定的金鑰。

    預設值:
    用戶端驗證模式 指定傳送埠用於向 SSH Server 驗證用戶端的驗證方法。 如果設定為 Password,您必須在 Password 屬性中輸入值。 如果設定為 PublicKeyAuthentication,您必須在 PrivateKey 屬性中輸入使用者的私密金鑰。 如果設定為 MultiFactorAuthentication ,您必須提供 Username 及其 PasswordPrivateKey。 此外,如果私密金鑰受到密碼保護,請輸入 密碼以及 PrivateKeyPassword 屬性的密碼。

    預設值: 密碼
    加密加密 從 BizTalk Server 2013 R2 開始提供。

    輸入加密加密的類型。

    BizTalk Server 2013 R2 選項:Auto、AES 和 TripleDES

    BizTalk Server 2016 選項:Auto、AES、Arcfour、Fishfish、TripleDES 和 DES
    金鑰交換演算法選取原則 從 BizTalk Server 2016 累積更新 6 開始提供。

    指定 KEX 喜好設定順序的逗號分隔清單。 Token WARN 是用來分隔子標準 KEXes。 範例:ecdh,dh-gex-sha1,dh-group14-sha1,rsa,WARN,dh-group1-sha1。 如需最新資訊,請造訪 WinSCP 網站。
    密碼 如果您將 ClientAuthenticationMode 設定為 Password,請指定 SFTP 使用者密碼。
    私密金鑰 如果您將 ClientAuthenticationMode 設定為 PublicKeyAuthentication,請指定 SFTP 使用者的私密金鑰。
    私密金鑰密碼 如果 PrivateKey 屬性中指定的金鑰需要,請指定私密金鑰密碼。
    SSH 伺服器主機金鑰指紋 指定介面卡用來驗證服務器的指紋,如果 AccessAnySSHServerHostKey 屬性設定為 False, 如果指紋不符,連線會失敗。
    SSO 分支機構 從 BizTalk Server 2020 開始提供。

    指定「企業單一登入」分支機構應用程式。
    使用者名稱 指定安全 FTP 伺服器的使用者名稱。

    SSH 伺服器

    使用 作法
    Append If Exists 如果目的地已經有正傳送至安全 FTP 伺服器的檔案,則此屬性指定正在傳送之檔案中的資料是否應附加至現有檔案。 如果設定為 True,則會附加資料。 如果設定為 False,則會覆寫目的地伺服器上的檔案。

    預設值:
    資料夾路徑 指定進行檔案複製的安全 FTP 伺服器上的資料夾路徑。
    連接埠 指定進行檔案傳輸的安全 FTP 伺服器上的連接埠位址。
    伺服器位址 指定安全 FTP 伺服器的伺服器名稱或 IP 位址。
    目標檔案名稱 指定用於將檔案傳輸至安全 FTP 伺服器的名稱。 您也可以使用目標檔案名稱的巨集。
  4. 再次按一下 [確定 ] 和 [ 確定 ] 以儲存設定。

使用較新的 WinSCP 版本

若要使用較新版本的 WinSCP 搭配BizTalk Server,請新增元件重新導向,讓 BizTalk 知道要載入的元件。 重新導向是在BizTalk Server組態檔中設定:BTSNTSVC.exe.config (32 位主機實例) 和 BTSNTSVC64.exe.config (64 位主機實例) 。

下列包含範例組態語法。 請務必將 取代 %NEWVERSION% 為您的版本:

<configuration>
 <runtime>
  <assemblyBinding>
   <dependentAssembly>
    <assemblyIdentity name="WinSCPnet" publicKeyToken="2271ec4a3c56d0bf" culture="neutral" />
    <bindingRedirect oldVersion="1.0.0.0-1.65535.65535.65535" newVersion="%NEWVERSION%"/>
   </dependentAssembly>
  </assemblyBinding>
 </runtime>
</configuration>

完成時,您的組態看起來會類似下列內容:

組態檔中的元件重新導向。

常見問題集

問題 回答
支援哪些 SFTP 伺服器? 請參閱 支援的 SFTP 伺服器。 從 BizTalk Server 2016 開始,SFTP 配接器會使用 WinSCP 連線到 SFTP。 因此,支援 WinSCP 的 SFTP 伺服器應該能夠運作。
SFTP 配接器可與相互驗證方法搭配使用嗎 (公開金鑰和密碼) ? - 從BizTalk Server 2013 R2開始,是。 如果設定為 MultiFactorAuthentication ,您必須提供 Username 及其 PasswordPrivateKey。 此外,如果私密金鑰受到密碼保護,請指定密碼以及 PrivateKeyPassword 屬性。

- 針對BizTalk Server 2013,可以使用PasswordPublicKeyAuthentication。 BizTalk Server 2013 隨附的 SFTP 配接器不支援MultiFactorAuthentication
支援哪些私密金鑰格式? 可以使用 OpenSSH 私密金鑰格式嗎? SFTP 配接器僅支援 PuTTY 私密金鑰檔案格式。 PuTTYgen 可用來從 OpenSSH 轉換為 .ppk 格式。
針對 SSHServerHostKeyFingerPrint,應該使用哪一種指紋演算法和格式? 您應該使用伺服器金鑰的 MD5 指紋格式: ssh-rsa 2048 90:e4:9b:67:d9:22:a7:5f:6f:33:db:6a:b1:23:96:12
SFTP 配接器是否支援 256 位加密? 是 - SFTP 配接器支援 256 位加密。 支援的加密演算法包括:

- AES 加密:256 位、192 位或 128 位 SDCTR 或 CBC

- 3DES (Triple-DES) 加密:168 位 SDCTR 或 CBC
配接器支援哪些 SSH 版本? 只有 SSH2。 無法與 SSH1 版本的 SFTP 伺服器建立連線。
檔案遮罩是區分大小寫的嗎? 不是 *.txt 和 *.TXT 的運作方式相同。 請安裝 BizTalk Server 2013 的最新累積更新。 BizTalk Server 2013 RTM 版本具有區分大小寫的檔案遮罩。
匯出繫結有空白密碼欄位。 嘗試匯入這些繫結來建立接收位置時,到底需要做哪些變更? 編輯密碼欄位來編輯系結檔案。 此外,在 中 <Password vt="1">MySecretPassword</Password>vt=「1」 表示 Null 值。 將它變更為 vt=「8」,表示字串。 例如:

<Password vt="8">MySecretPassword</Password>

如需詳細資訊,請參閱 https://msdn.microsoft.com/library/system.runtime.interopservices.varenum(v=vs.100).aspx
如何?指定檔案路徑? 一般而言,路徑會以 格式 /folder/pathname 指定。 不過,不同的伺服器需要不同的格式,而且沒有開頭或尾端斜線。 因此,您也可以嘗試下列各項:

- /folder/pathname

- /folder/pathname/

- folder/pathname

- folder/pathname/