即使在 CITRUS-CONTEXT 文件中提供用户名和密码后,Citrus SFTP 仍要求输入用户名和密码

Citrus SFTP asking for user name and password even after giving user name and password in CITRUS-CONTEXT file

我正在尝试使用 citrus 向 sftp 服务器进行身份验证我已经在这样的上下文文件中提供了用户名和密码

<citrus-sftp:client id="client"
   strict-host-checking="false"
   port="22"
   username="xxxxx"
   password="xxxxxxxx"
   timeout="1000"/>

当程序正在执行时,我收到一些提示,例如

"KEBROS USERNAME :  "

输入用户名后它会询问

"KEBROS PASSWORD :  "

然后在程序开始执行命令之后。我必须做些什么来消除这个问题。

这是Kerberos/GSSAPI用户名密码认证的认证提示

默认情况下,Kerberos/GSSAPI gssapi-with-mic 是客户端和服务器在使用 JSch 客户端时首先选择的身份验证方法之一。解决方案是从 JSch 会话中的首选身份验证方法列表中删除 gssapi-with-mic

session.setConfig("PreferredAuthentications", "publickey,password,keyboard-interactive");

很遗憾,您无法使用当前的 Citrus SFTP 客户端实现设置此配置(请参阅问题 https://github.com/citrusframework/citrus/issues/483)。

因此,您可以尝试在您的环境中的服务器上禁用 gssapi-with-mic 身份验证方法。或者您可以尝试使用

在本地 $HOME/.ssh/config 配置文件中禁用身份验证
Host *
  GSSAPIAuthentication no

一般来说,您需要等待 Citrus 解决问题,以便能够在 SFTP 客户端端点上的 JSch 会话中设置首选身份验证方法。