0

我有一个托管在 WebSphere 上的 Web 应用程序(Spring MDP),它监听消息并使用 SFTP 在 3 个不同的服务器(Unix 机器)上生成一些文本文件。我们正在使用 Spring 集成 (DefaultSftpSessionFactory) 来建立 SFTP 连接,并使用目标主机的用户凭据(用户名/密码)将文件写入不同的服务器。

现在,根据新要求,我们必须停止使用用户名/密码来连接服务器,而是使用 SSH 密钥对。我们得到了指示,我们必须使用 SSH 密钥为“wasadm”用户建立连接。这是我到目前为止所做的:

  1. 从 WAS Admin 团队获得了“wasadm”用户的公钥。
  2. 将公钥安装到不同服务器的授权密钥。

现在,我的问题是 - 如何配置我的应用程序,以便它获取“wasadm”SSH 私钥以连接到目标框。(私钥位于“/home/wasadmin/.ssh”位置。EAR 应用程序是否可以访问此目录?如果可以,如何配置 DefaultSftpSessionFactory 以使用此私钥进行身份验证)。

非常感谢任何指针和指导。

非常感谢。

-阿什什

4

1 回答 1

1

sftp 示例显示了如何做到这一点... https://github.com/garyrussell/spring-integration-samples/tree/master/basic/sftp

您在会话工厂上配置它...

<bean id="sftpSessionFactory" class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory">
    <property name="host" value="${host}"/>
    <property name="privateKey" value="classpath:path-to-key/sftp_rsa"/>
    <property name="privateKeyPassphrase" value="${passphrase}"/>
    <property name="port" value="22"/>
    <property name="user" value="${user}"/>
</bean>

<int-sftp:outbound-channel-adapter id="sftpOutboundAdapter"
            session-factory="sftpSessionFactory"
...
于 2012-12-12T00:44:56.713 回答