协议网桥属性文件格式

代理配置目录中的 ProtocolBridgeProperties.xml 文件定义协议文件服务器的属性。

ProtocolBridgeProperties.xml 文件必须符合 ProtocolBridgeProperties.xsd 模式。 ProtocolBridgeProperties.xsd 模式文档位于 Managed File Transfer 安装的 MQ_INSTALLATION_PATH/mqft/samples/schema 目录中。 模板文件 ProtocolBridgeProperties.xml 通过 fteCreateBridgeAgent 命令创建在代理配置目录中。

ProtocolBridgeProperties.xml 文件由代理定期重新装入,并且对该文件所做的任何有效更改都将影响代理的行为。 缺省重新装入时间间隔为 30 秒。 可以通过在 agent.properties 文件中指定代理属性 xmlConfigReloadInterval 来更改此时间间隔。

模式

以下模式描述 ProtocolBridgeProperties.xml 文件。

如果不使用以下属性:
  • maxActiveDestinationTransfers(全局属性)
  • maxActiveDestinationTransfers(单个服务器属性)
  • failTransferWhenCapacityReached
受管文件传输处理以其当前格式继续进行,并且不会更改以下模式。
注意: 源协议网桥代理和目标协议网桥代理都必须在 IBM® MQ 9.2.1 或更高版本上,才能使用其他属性。

请参阅 对序列组的更改对限制组的更改 以了解这些属性对模式所作的更改,以及 限制到各个文件服务器的文件传输次数的方案和示例 以获取有关这些更改如何影响协议网桥代理工作的信息。

<schema targetNamespace="http://wmqfte.ibm.com/ProtocolBridgeProperties" elementFormDefault="qualified"
	xmlns="https://www.w3.org/2001/XMLSchema" xmlns:tns="http://wmqfte.ibm.com/ProtocolBridgeProperties">

	<!--
		Example: ProtocolBridgeProperties.xml
		
		<?xml version="1.0" encoding="UTF-8"?>
		<tns:serverProperties xmlns:tns="http://wmqfte.ibm.com/ProtocolBridgeProperties"
							  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
							  xsi:schemaLocation="http://wmqfte.ibm.com/ProtocolBridgeProperties
							  ProtocolBridgeProperties.xsd">
			<tns:credentialsFile path="$HOME/ProtocolBridgeCredentials.xml" />				  
		    <tns:defaultServer name="myserver" />
		    <tns:ftpServer name="myserver" host="myhost.hursley.ibm.com" port="1234" platform="windows"
		         		   timeZone="Europe/London" locale="en-GB" fileEncoding="UTF-8"
		        		   listFormat="unix" limitedWrite="false" />
			<tns:sftpServer name="server1" host="myhost.hursley.ibm.com" platform="windows"
		         		    fileEncoding="UTF-8" limitedWrite="false">
		    	<limits maxListFileNames="10" />
		    </tns:sftpServer>
		</tns:serverProperties>
	-->

	<!-- Root element for the document -->
	<element name="serverProperties" type="tns:serverPropertiesType"></element>

	<!--
		A container for all protocol bridge server properties
	-->
	<complexType name="serverPropertiesType">
		<sequence>
			<element name="credentialsFile" type="tns:credentialsFileName" minOccurs="0" maxOccurs="1" />
			<element name="defaultServer" type="tns:serverName" minOccurs="0" maxOccurs="1" />
			<choice minOccurs="0" maxOccurs="unbounded">
				<element name="ftpServer" type="tns:ftpServerType" />
				<element name="sftpServer" type="tns:sftpServerType" />
				<element name="ftpsServer" type="tns:ftpsServerType" />
				<element name="ftpsfgServer" type="tns:ftpsfgServerType" />
				<element name="ftpssfgServer" type="tns:ftpssfgServerType" />
			</choice>
		</sequence>
	</complexType>

	<!--
		A container for a server name
	-->
	<complexType name="serverName">
		<attribute name="name" type="tns:serverNameType" use="required" />
	</complexType>
	
	<!--
		A container for a credentials file name
	-->
	<complexType name="credentialsFileName">
		<attribute name="path" type="string" use="required" />
	</complexType>
	
	<!--
		A container for all the information about an FTP server
	-->
	<complexType name="ftpServerType">
		<sequence>
			<element name="limits" type="tns:generalLimitsType" minOccurs="0" maxOccurs="1"  />
		</sequence>
		<attributeGroup ref="tns:ftpServerAttributes"/>
        <attribute name="passiveMode" type="boolean" use="optional" />		
	</complexType>
	
	<!--
		A container for all the information about an SFG FTP server
	-->
	<complexType name="ftpsfgServerType">
		<sequence>
			<element name="limits" type="tns:generalLimitsType" minOccurs="0" maxOccurs="1"  />
		</sequence>
		<attributeGroup ref="tns:ftpServerAttributes"/>
	</complexType>
	
	<!--
		A container for all the information about an SFTP server
	-->
	<complexType name="sftpServerType">
		<sequence>
			<element name="limits" type="tns:sftpLimitsType" minOccurs="0" maxOccurs="1"  />
		</sequence>
		<attributeGroup ref="tns:sftpServerAttributes"/>
	</complexType>
	
	<!--
		A container for all the information about a FTPS server
	-->
	<complexType name="ftpsServerType">
		<sequence>
			<element name="limits" type="tns:generalLimitsType" minOccurs="0" maxOccurs="1"  />
		</sequence>
		<attributeGroup ref="tns:ftpsServerAttributes"/>
	</complexType>

	<!--
		A container for all the information about a SFG FTPS server
	-->
	<complexType name="ftpssfgServerType">
		<sequence>
			<element name="limits" type="tns:generalLimitsType" minOccurs="0" maxOccurs="1"  />
		</sequence>
		<attributeGroup ref="tns:ftpsServerAttributes"/>
	</complexType>

	
	<!--
		Attributes common to all server types
	-->
	<attributeGroup name="generalServerAttributes">
		<attribute name="name" type="tns:serverNameType" use="required" />
		<attribute name="host" type="string" use="required" />
		<attribute name="port" type="nonNegativeInteger" use="optional" />
		<attribute name="platform" type="tns:platformType" use="required" />
		<attribute name="fileEncoding" type="string" use="required" />
		<attribute name="limitedWrite" type="boolean" use="optional" />
		<attribute name="controlEncoding" type="string" use="optional" />
	</attributeGroup>
	
	<!--
		Attributes common to ftp and ftps server types
	-->
	<attributeGroup name="ftpServerAttributes">
		<attributeGroup ref="tns:generalServerAttributes"/>
		<attribute name="timeZone" type="string" use="required" />
		<attribute name="locale" type="tns:localeType" use="required" />
		<attribute name="listFormat" type="tns:listFormatType" use="optional" />
		<attribute name="listFileRecentDateFormat" type="tns:dateFormatType" use="optional" />		
		<attribute name="listFileOldDateFormat" type="tns:dateFormatType" use="optional" />
		<attribute name="monthShortNames" type="tns:monthShortNamesType" use="optional" />
	</attributeGroup>
	
	<!--
		Attributes common to ftps server types
	-->
	<attributeGroup name="ftpsServerAttributes">
		<attributeGroup ref="tns:ftpServerAttributes"/>
		<attribute name="ftpsType" type="tns:ftpsTypeType" use="optional" />
		<attribute name="trustStore" type="string" use="required" />
		<attribute name="trustStoreType" type="string" use="optional" />
	       <attribute name="keyStore" type="string" use="optional" />
		<attribute name="keyStoreType" type="string" use="optional" />
		<attribute name="ccc" type="boolean" use="optional" />
		<attribute name="protFirst" type="boolean" use="optional" />
		<attribute name="auth" type="string" use="optional" />
		<attribute name="connectTimeout" type="nonNegativeInteger" use="optional"/>
	</attributeGroup>
	
	
	<!--
		A container for limit-type attributes for a server. Limit parameters
		are optional, and if not specified a system default will be used.
	-->
	<complexType name="generalLimitsType">
		<attributeGroup ref="tns:generalLimitAttributes"/>
	</complexType>
	
	<complexType name="sftpLimitsType">
		<attributeGroup ref="tns:generalLimitAttributes"/>
		<attribute name="connectionTimeout" type="nonNegativeInteger" use="optional" />
	</complexType>
	
	<!--
		Attributes for limits common to all server types
	-->
	<attributeGroup name="generalLimitAttributes">
		<attribute name="maxListFileNames" type="positiveInteger" use="optional" />
		<attribute name="maxListDirectoryLevels" type="nonNegativeInteger" use="optional" />
		<attribute name="maxReconnectRetry" type="nonNegativeInteger" use="optional" />
		<attribute name="reconnectWaitPeriod" type="nonNegativeInteger" use="optional" />
		<attribute name="maxSessions" type="positiveInteger" use="optional" />
		<attribute name="socketTimeout" type="nonNegativeInteger" use="optional" />
	</attributeGroup>
		
	<!--
		The type for matching valid server names. Server names must be at least 2 characters in length and 
		are limited to alphanumeric characters and the following characters: ".", "_", "/" and "%".
	-->
	<simpleType name="serverNameType">
        <restriction base="string">
            <pattern value="[0-9a-zA-Z\._/%]{2,}"/>
        </restriction>
    </simpleType>
    
	<!--
		The types of platform supported.
	-->
	<simpleType name="platformType">
		<restriction base="string">
		</restriction>
	</simpleType>
	
	<!--
		The type for matching a locale specification.
	-->
	<simpleType name="localeType">
        <restriction base="string">
            <pattern value="(..)[-_](..)"/>
        </restriction>
    </simpleType>

	<!--
		The types of list format supported (for FTP servers). 
	-->
	<simpleType name="listFormatType">
		<restriction base="string">
		</restriction>
	</simpleType>
	
	<!--
		Date format for FTP client directory listing on an FTP server. This is
		the format to be passed to methods setDefaultDateFormatStr and 
		setRecentDateFormatStr for Java class:
		org.apache.commons.net.ftp.FTPClientConfig
	-->
	<simpleType name="dateFormatType">
		<restriction base="string">
		</restriction>
	</simpleType>
	
	<!--
		A list of language-defined short month names can be specified. These are
		used for translating the directory listing received from the FTP server.
		The format is a string of three character month names separated by "|"
	-->
	<simpleType name="monthShortNamesType">
        <restriction base="string">
            <pattern value="(...\|){11}(...)"/>
        </restriction>
    </simpleType>
    
    <!--
		The enumerations of the allowed FTPS types: "implicit" & "explicit"
		If not specified the default is "explicit"
	-->
	<simpleType name="ftpsTypeType">
        <restriction base="string">
            <enumeration value="explicit"/>
            <enumeration value="implicit"/>
        </restriction>
    </simpleType>
    
    <!--
    	Attribute Group for SFTP Servers
    -->
<attributeGroup name="sftpServerAttributes">
       <attributeGroup ref="tns:generalServerAttributes"/>
       <attribute name="cipherList" type="string" use="optional" />
       <attribute name="keyExchangeCipherList" type="string" use="optional" />
       <attribute name="hostKeyCipherList" type="string" use="optional" />
       <attribute name="MACCipherList" type="string" use="optional" />
       <attribute name="fingerprintHash" type="string" use="optional" />
</attributeGroup>
</schema>

sequence 组的更改

在添加 maxActiveDestinationTransfers (全局) 和 failTransferWhenCapacityReached 属性之后, ComplexType 下的 sequence 组如下所示,更改以粗体文本显示:

<!--
	A container for all protocol bridge server properties
-->
<complexType name="serverPropertiesType">
<sequence>
   <element name="credentialsFile" type="tns:credentialsFileName" minOccurs="0" maxOccurs="1" />
   <element name="credentialsKeyFile" type="tns:credentialsKeyFileName" minOccurs="0" maxOccurs="1" />
   <element name="maxActiveDestinationTransfers"
    type="tns:maxActiveDestinationTransfersValue" minOccurs="0" 
    maxOccurs="1" />
   <element name="failTransferWhenCapacityReached" 
   type="tns:failTransferWhenCapacityReachedValue" minOccurs="0"
   maxOccurs="1" />			
   <element name="defaultServer" type="tns:serverName" minOccurs="0" maxOccurs="1" />
   <choice minOccurs="0" maxOccurs="unbounded">
	<element name="ftpServer" type="tns:ftpServerType" />
	<element name="sftpServer" type="tns:sftpServerType" />
	<element name="ftpsServer" type="tns:ftpsServerType" />
	<element name="ftpsfgServer" type="tns:ftpsfgServerType" />
	<element name="ftpssfgServer" type="tns:ftpssfgServerType" />
   </choice>
</sequence>
</complexType>

<!--
	A container for default value for maxActiveDestinationTransfers
-->
<complexType name="maxActiveDestinationTransfersValue">
	<attribute name="value" type="positiveInteger" use="required" />
</complexType>



<!--
	A container for a boolean value to decide to fail a transfer if max capacity is reached
-->
<complexType name="failTransferWhenCapacityReachedValue">	
	<attribute name="value" type="boolean" use="required" />
</complexType>

limits 组的更改

在添加 maxActiveDestinationTransfers (个别服务器) 属性之后, limits 组如下所示,并以粗体文本显示更改:

<!--
Attributes for limits common to all server types
-->
<attributeGroup name="generalLimitAttributes">
  <attribute name="maxListFileNames" type="positiveInteger" 
  use="optional"/>
  <attribute name="maxListDirectoryLevels" type="nonNegativeInteger"
  use="optional"/>
  <attribute name="maxReconnectRetry" type="nonNegativeInteger"
  use="optional" />
  <attribute name="reconnectWaitPeriod" type="nonNegativeInteger"
  use="optional" />
  <attribute name="maxSessions" type="positiveInteger" use="optional" />
  <attribute name="socketTimeout" type="nonNegativeInteger" use="optional" 
  />
  <attribute name="connectionTimeout" type="nonNegativeInteger" 
  use="optional" />
  <attribute name="maxActiveDestinationTransfers" type="nonNegativeInteger" 
  use="optional" />
</attributeGroup>

示例 XML 文件


<tns:serverProperties 
	xmlns:tns="http://wmqfte.ibm.com/ProtocolBridgeProperties"
	xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://wmqfte.ibm.com/ProtocolBridgeProperties  
	ProtocolBridgeProperties.xsd">
	
	<tns:maxActiveDestinationTransfers value="5" />
	<tns:failTransferWhenCapacityReached value="true"/>
	<tns:defaultServer name="guestServer" />
	
	<tns:sftpServer name="guestServer" host="9.202.177.44" port="22" 
	platform="unix" fileEncoding="UTF-8" limitedWrite="false">

	<tns:limits connectionTimeout="60" 
	maxActiveDestinationTransfers="2"/>
	</tns:sftpServer>	
	
	<tns:sftpServer name="nixonServer" host="9.199.145.33" port="22" 
	platform="unix" fileEncoding="UTF-8" limitedWrite="false">		
		
	<tns:limits connectionTimeout="60"/>
	</tns:sftpServer>
	
	<tns:sftpServer name="mySFTPserver" host="Harrison.hursley.ibm.com" 
	port="22" platform="unix" fileEncoding="UTF-8	limitedWrite="false"
	>

	<tns:limits connectionTimeout="60" />
	</tns:sftpServer>	

</tns:serverProperties>

了解 ProtocolBridgeProperties.xml 文件

以下列表中描述了 ProtocolBridgeProperties.xml 文件中使用的元素和属性:
<serverProperties>
XML 文档的根元素
<credentialsFile>
包含凭证的文件的路径。 此属性的值可以包含环境变量。 有关更多信息,请参阅 MFT 属性中的环境变量
<defaultServer>
充当文件传输的缺省服务器的协议文件服务器
<ftpServer>
FTP 文件服务器
<sftpServer>
SFTP 文件服务器
<ftpsServer>
FTPS 文件服务器
<limits>
所有类型服务器的常见属性和特定于某类型服务器的属性的容器元素:
适用于所有类型的协议文件服务器的一般服务器属性
属性 描述
名称 必需。 协议文件服务器的名称。 协议服务器名称长度必须至少为两个字符,不区分大小写,且局限于字母数字字符和以下字符:
  • 句点 (.)
  • 下划线 (_)
  • 正斜杠 (/)
  • 百分号 (%)
主机 必需。 要向其发送文件或接收其文件的协议文件服务器的主机名或 IP 地址。
port 可选。 要向其发送文件或接收其文件的协议文件服务器的端口号。
platform 必需。 要向其发送文件或接收其文件的协议文件服务器的平台。 指定 UNIXWINDOWS。根据您在 FTP、FTPS 或 SFTP 服务器上输入路径的方法,设置该属性。 例如,如果要在 Windows 上运行 FTP 服务器,但在登录到服务器时,必须输入 UNIX样式的路径 (即带有正斜杠) ,请将此值设置为 UNIX 而不是 WINDOWS。 在 Windows 上运行的服务器通常提供 UNIX样式的文件系统。
fileEncoding 必需。 定义文件服务器使用的字符编码。 当您以文本方式传输文件时,使用该属性,以便在平台之间移动文件时更改正确的编码序列。 例如,UTF-8。
limitedWrite 可选。 写入文件服务器时的缺省方式是创建临时文件,然后在完成传输后重命名该文件。 对于配置为只写的文件服务器,会使用其最终名称直接创建此文件。 该属性的值可以为 truefalse。 缺省值为 false
controlEncoding 可选。 正发送给协议文件服务器的控制消息的控制编码值。 该属性影响使用的文件名称的编码,并且必须与协议文件服务器的控制编码兼容。 缺省值为 UTF-8
仅适用于 FTP 和 FTPS 服务器的常规属性
属性 描述
timeZone 必需。 要向其发送文件或接收其文件的协议文件服务器的时区。 例如:America/New_YorkAsia/Tokyo
locale 必需。 要向其发送文件或接收其文件的协议文件服务器上使用的语言。 例如:en_USja_JP
listFormat 可选。 定义从协议文件服务器返回的文件列出信息格式的列表格式。 使用 WindowsUNIX。 缺省值为 UNIX
listFileRecentDateFormat 可选。 FTP 服务器上列出的 FTP 客户机目录的最近日期格式(少于一年)。 此属性和 listFileOldDateFormat 属性允许您重新定义协议文件服务器返回的预期日期格式。 缺省值是由协议文件服务器定义的。
listFileOldDateFormat 可选。 FTP 服务器上列出的 FTP 客户机目录的旧日期格式(一年以上)。 此属性和 listFileRecentDateFormat 属性允许您重新定义协议文件服务器返回的预期日期格式。 缺省值是由协议文件服务器定义的。
monthShortNames 可选。 用于对从协议文件服务器返回的日期信息进行解码的月名称的替换列表。 该属性包含 12 个以逗号分隔的名称的列表,以覆盖缺省语言环境月值。 缺省值是由协议文件服务器定义的。
仅适用于 FTP 服务器的常规属性
属性 描述
passiveMode 可选。 控制以被动方式还是主动方式连接到 FTP 服务器。

如果您将该属性的值设置为 false,那么连接采用主动方式。 如果您将该值设置为 true,那么连接采用被动方式。 缺省值为 false

仅适用于 FTPS 服务器的常规属性
属性 描述
ftpsType 可选。 指定使用 FTPS 协议的显式还是隐式格式。 缺省值为 explicit
trustStore 必需。 用于确定 FTPS 服务器提供的证书是否可信的信任库的位置。
trustStoreType 可选。 信任库文件的格式。 缺省值为 JKS
keyStore 可选。 用于在 FTPS 服务器质询时提供证书信息的密钥库的位置。 缺省情况下,协议网桥不能与配置为需要客户机认证的 FTPS 服务器连接。
keyStoreType 可选。 密钥库文件的格式。 缺省值为 JKS
ccc 可选。 选择在认证完成时是否使用清除(未加密)命令通道。 缺省值为 false,这表示在整个 FTPS 会话期间命令通道保持加密。 该属性仅在 ftpsType 设置为 explicit 时才适用。
protFirst 可选。 指定在 PBSZ/PROT 命令之前还是之后向 FTPS 服务器发出 USER/PASS 命令。 缺省值为 false,这表示先发送 USER/PASS 命令,然后发送 PBSZ/PROT命令。 该属性仅在 ftpsType 设置为 explicit 时才适用。
auth 可选。 指定在 AUTH 命令中指定的协议。 将首先尝试指定的协议,然后缺省行为是尝试 TLSSSLTLS-CTLS-P,直至 FTPS 服务器不会以 504 应答代码进行拒绝。 该属性仅在 ftpsType 设置为 explicit 时才适用。

仅适用于 SFTP 服务器的常规属性:

[MQ 9.4.0 2024 年 6 月]
重要信息: cipherList 和特定于 SFTP 服务器的属性的缺省值已从 IBM MQ 9.4.0 发行版更改。
迁移到 IBM MQ 9.4.0后,您可能会看到以下错误消息:
BFGBR0127E: 网桥代理已拒绝与 {0} 的连接,因为其提供的主机密钥与期望值不匹配。 返回的主机密钥为 {1}。
您可以执行下列其中一项操作来解决该错误:
  1. ProtocolBridgeCredentials.xml 文件中 tns:server 元素的 hostKey 属性值更改为错误消息 BFGBR0127E中提供的值 {1}。
  2. ProtocolBridgeProperties.xml 文件到IBM MQ 9.4.0 之前的发行版中指定 SFTP 服务器的 cipherListhostKeyCipherListkeyExchangeCipherListMACCipherListfingerprintHash 属性的值。 以下示例将这些属性的值设置为IBM MQ 9.4.0 之前的发行版:
    
    <tns:sftpServer name='yoursftpserver' fileEncoding='UTF-8' host='yoursftpserver.ibm.com' platform='unix' limitedWrite='false'
       cipherList='aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc,aes192-ctr,aes192-cbc,aes256-ctr,aes256-cbc'
       hostKeyCipherList='ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'
    keyExchangeCipherList='ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1'
       MACCipherList='hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-96,hmac-md5-96'
       fingerprintHash='md5'>
        <tns:limits/>
    </tns:sftpServer>
属性 描述
connectionTimeout 可选。 等待协议文件服务器对连接请求响应的时间(秒)。 超时表示协议文件服务器不可用。 缺省值是 30 秒。
cipherList

可选。 指定用于在协议网桥代理和 SFTP 服务器之间通信的密码的逗号分隔列表。 密码调用顺序与此列表中指定密码的顺序相同。 在可以使用密码之前,必须在服务器和客户机上提供该密码。

请注意,当网桥代理和 SFTP 服务器协商要用于通信的密码时,属性值中密码名称的顺序很重要。

协议网桥代理支持的密码如下所示:
  • aes128-ctr
  • aes192-ctr
  • aes256-ctr
  • [MQ 9.4.0 2024 年 6 月] aes128-gcm
  • [MQ 9.4.0 2024 年 6 月] aes256-gcm
  • aes128-cbc
  • 3des-ctr
  • 3des-cbc
  • blowfish-cbc
  • aes192-cbc
  • aes256-cbc

缺省情况下,协议网桥代理使用的密码列表为 aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com

[MQ 9.4.0 2024 年 6 月]keyExchangeCipherList 可选。 指定密钥交换的以逗号分隔的密码名称列表。 在可以使用密码之前,必须在服务器和客户机上提供该密码。

SSH 密钥交换 (简称 KEX) 由客户机 (在本例中为 Bridge 代理程序) 和 SFTP 服务器使用,以公共方式交换信息,从而生成由客户机和服务器共享的密钥,观察者无法从公共信息中发现或派生该密钥。

请注意,当网桥代理和 SFTP 服务器协商要使用的密码时,属性值中密码名称的顺序很重要。

支持的密码:
  • curve25519-sha256
  • ecdh-sha2-nistp256
  • ecdh-sha2-nistp384
  • ecdh-sha2-nistp521
  • diffie-hellman-group-exchange-sha256
  • diffie-hellman-group16-sha512
  • diffie-hellman-group18-sha512
  • diffie-hellman-group14-sha256
  • diffie-hellman-group14-sha1
  • diffie-hellman-group-exchange-sha1
  • diffie-hellman-group1-sha1

默认值:curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256

[MQ 9.4.0 2024 年 6 月]hostKeyCipherList 可选。 指定以逗号分隔的密码名称列表。 在可以使用密码之前,必须在服务器和客户机上提供该密码。

主机密钥 (或服务器的公用密钥) 唯一地标识 SFTP 服务器。

主机密钥在ProtocolBridgeCredentials.xml 文件中指定。 在协商期间, SFTP 服务器将其主机密钥发送到网桥代理。 然后,网桥代理会将收到的主机密钥与ProtocolBridgeCredentials.xml 文件中的主机密钥进行比较,以确保网桥代理已连接到正确的 SFTP 服务器。

如果密钥不同,那么将结束连接。 SFTP 服务器可以支持使用不同密码生成的多个唯一主机密钥。 此属性的密码列表确定用于生成主机密钥的算法。

请注意,当网桥代理和 SFTP 服务器协商要使用的密码时,属性值中密码名称的顺序很重要。

支持的密码:
  • ssh-ed25519
  • ecdsa-sha2-nistp256
  • ecdsa-sha2-nistp384
  • ecdsa-sha2-nistp521
  • rsa-sha2-512
  • rsa-sha2-256
  • ssh-rsa
  • 西德斯

默认值:ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256

[MQ 9.4.0 2024 年 6 月]MACCipherList 可选。 指定以逗号分隔的密码名称列表。 在可以使用密码之前,必须在服务器和客户机上提供该密码。

消息认证代码 (MAC) 用于确认数据完整性和消息数据的真实性。 它用于确保攻击者不会在中间更改消息数据。 该值定义用于 MAC 的密码列表。

请注意,当网桥代理和 SFTP 服务器协商要使用的密码时,属性值中密码名称的顺序很重要。

支持的密码:
  • hmac-sha2-256-etm
  • hmac-sha2-512-etm
  • hmac-sha1-etm
  • hmac-sha2-256
  • hmac-sha2-512
  • hmac-sha1
  • hmac-md5
  • hmac-sha1-96
  • hmac-md5-96

默认值:hmac-sha2-256-etm,hmac-sha2-512-etm,hmac-sha1-etm,hmac-sha2-256,hmac-sha2-512,hmac-sha1

[MQ 9.4.0 2024 年 6 月]fingerprintHash 可选。 指定用于 hostKey的散列算法的名称。

根据所使用的算法,主机密钥的值有所不同。 SFTP 服务器可以支持所有三个散列算法,客户机可以选择一个合适的算法,最好是更强的算法。

支持的值如下:
  • md5
  • sha1
  • sha256.

缺省值:sha256

[MQ 9.4.0 2024 年 6 月]修改后的输出示例

<tns:sftpServer name='elbow' fileEncoding='UTF-8' host='elbow.v6.hursley.ibm.com' platform='unix' limitedWrite='false' 
cipherList= 'aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm,aes256-gcm'
hostKeyCipherList='ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256'
keyExchangeCipherList= 'curve25519-sha256,curve25519-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,
                        diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,
                        diffie-hellman-group14-sha256'
MACCipherList='hmac-sha2-256-etm,hmac-sha2-512-etm,hmac-sha1-etm,hmac-sha2-256,hmac-sha2-512,hmac-sha1'
fingerprintHash='sha256'> 
<tns:limits/>
</tns:sftpServer>
适用于所有类型的协议文件服务器的一般限制属性
属性 描述
maxListFileNames 可选。 在协议文件服务器上的目录中扫描文件名时收集的最大名称数。 缺省值为 999999999
maxListDirectoryLevels 可选。 在协议服务器上递归扫描文件名的最大目录级别数。 缺省值是 1000。
[不推荐]maxReconnectRetry 可选。 协议网桥代理停止尝试之前,协议服务器尝试重新连接的最大次数。 缺省值为 2。
[不推荐]reconnectWaitPeriod 可选。 尝试重新连接之前等待的时间段(秒)。 缺省值为 10 秒。
maxSessions 可选。 协议服务器的最大会话数。 该数字必须大于或等于协议网桥代理源和目标传输的最大数之和。 默认值是代理属性maxSourceTransfers, maxDestinationTransfers,和maxCommandHandlerThreads,的值之和加 1。 如果这三个属性的默认值分别为 25、25 和 5,那么maxSessions的默认值就是 56。
socketTimeout 可选。 套接字超时(秒)。 文件流期间使用该属性的值。 缺省值为 30 秒。
maxActiveDestinationTransfers(全局属性) 可选。 用于指定全局值,以限制每个目标 * ftp * 端点的活动传输数。 这是一个非零正整数,最小值为 0 ,最大值为 1

maxActiveDestinationTransfers要求使用AttributeName

maxActiveDestinationTransfers(单个服务器级别) 可选。 用于指定每个目标 * ftp * 端点的活动传输数限制。 这是一个非负整数。

此属性可由三个服务器中的任何一个使用,如果指定,此值将覆盖该端点服务器的maxActiveDestinationTransfers全局值。

此属性的值不能超过maxDestinationTransfers 的值。 如果超过此值,那么协议网桥代理将假定未设置此值,并在标准现有流中处理受管传输。 消息 BFGSS0088W 记录在 output0.log 文件中。
注意:可能会过度提交新的maxActiveDestinationTransfers属性。 也就是说,所有端点的maxActiveDestinationTransfers之和可以大于maxDestinationTransfers 的值。 您必须考虑此功能是否适合您的企业。
failTransferWhenCapacityReached(全局属性) 可选。 这是一个非零正整数,最小值为 0 ,最大值为 1

failTransferWhenCapacityReached要求使用AttributeName

适用于maxDestinationTransfers和maxActiveDestinationTransfers,可用于指定是否在以下情况下协议桥代理传输失败:
  • 当终端服务器的活动传输总数超过maxDestinationTransfers计数时,可能出现两种情况:
    failTransferWhenCapacityReached= false
    采用处理受管传输的标准现有路径。
    failTransferWhenCapacityReached= true
    如果活动传输总数大于maxActiveTransfers,则传输失败
  • 当端点服务器的活动传输总数超过maxActiveDestinationTransfers计数时,可能出现的两个值是
    failTransferWhenCapacityReached= false
    默认值,在未设置maxActiveDestinationTransfers时适用。
    一旦某个端点服务器的活动传输数超过了maxActiveDestinationTransfers值,下一个到该特定端点服务器的托管传输就会被拒绝,并被协议桥代理转移到一个称为WaitingForDestinationFileServerCapacity的新状态。
    源代理处理这种状态的方式与目前处理进入WaitingForDestinationCapacity状态的托管传输的方式相同,即等待一段时间后再与目的地代理联系。
    failTransferWhenCapacityReached= true
    一旦某个端点服务器的活动传输数超过maxActiveDestinationTransfers值,协议桥代理就会拒绝向该特定端点服务器进行下一次托管传输,并将其标记为失败。