首页 > 解决方案 > 即使在 CITRUS-CONTEXT 文件中提供用户名和密码后,Citrus SFTP 也会要求用户名和密码

问题描述

我正在尝试使用 citrus 对 sftp 服务器进行身份验证,我在这样的上下文文件中给出了 usrname 和密码

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

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

"KEBROS USERNAME :  "

输入用户名后,它问的是

"KEBROS PASSWORD :  "

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

标签: javalinuxcitrus-framework

解决方案


这是提示用户名和密码身份验证的 Kerberos/GSSAPI 身份验证。

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

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 会话中设置首选身份验证方法。


推荐阅读