2012-12-10 28 views
0

我在WebSphere上託管了一個Web應用程序(Spring MDP),它監聽消息並使用SFTP在3個不同的服務器(Unix機箱)上生成一些文本文件。我們使用Spring集成(DefaultSftpSessionFactory)建立SFTP連接,並使用用戶憑證(用戶名/密碼)將目標主機的文件寫入不同的服務器。使用WebSphere和Spring集成的SSH配置

現在,根據新的要求,我們必須停止使用用戶名/密碼連接到服務器並使用SSH密鑰對。我們已經給出了一個方向,我們必須爲'wasadm'用戶使用SSH密鑰來建立連接。這是我迄今爲止所做的:

  1. 從WAS Admin團隊獲得了'wasadm'用戶的公鑰。
  2. 獲得安裝到不同服務器授權密鑰的公鑰。

現在,我的問題是 - 我如何配置我的應用程序,以便它拿起'wasadm'SSH私鑰用於連接到目標機器。 (私鑰位於'/home/wasadmin/.ssh'這個目錄下,這個目錄是否可以被EAR應用程序訪問?如果是,我如何配置DefaultSftpSessionFactory來使用這個私鑰進行認證)。

任何指針和指導,非常感謝。

非常感謝。

-Ashish

+1

你應該能夠裝載信任/密鑰庫或證書文件放在相應的java對象(如TrustedStore或X509Certificate或類似的東西)中。基本上什麼都不能阻止你做新的文件(某個位置).. 沒有期望WAS_INSTALL \ java \ jre \ lib \ security下的java.policy文件可以,它會(默認設置)阻止你訪問默認文件安裝目錄.. – Talijanac

回答

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" 
...