SFTP 서버에 연결할 때 예외가 발생합니다. 나는 그것이 비보안 서버라고 믿지만, FTP와의 연결은 실패했다. 나는 관리자가 서버가 실제로 보안이되어 SFTP를 사용해야 함을 확인했다. 이 코드는 독립 실행 형 Java 프로그램처럼 내 로컬 시스템에서 정상적으로 실행되지만 내 로컬 시스템의 Websphere 상거래 서버에서는 실행되지 않습니다.SFTP 연결 문제
코드 :
FTPSClient client = new FTPSClient();
//FTPClient client = new FTPClient();
//client.setKeyManager(km);
System.setProperty("javax.net.debug", "all");
//client.setSocketFactory(SSLSocketFactory.getDefault());
client.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
client.setTrustManager(ACCEPT_ALL);
client.enterLocalPassiveMode();
client.setWantClientAuth(false);
client.setNeedClientAuth(false);
//client.setEnabledCipherSuites(null);
System.out.println("using 990'");
client.connect("obuftp.sears.com",21);
예외 (WCS의 ENV 내에서 실행)
SystemOut O 220-| Welcome to obuftp401p FTP over SSL (FTPS) Server |
220-| We allow TLS connections on ports 21 and 990. |
220-| If you see "503 Login with USER first." use SSL. |
220
SystemOut O AUTH TLS
SystemOut O 234 Proceed with negotiation.
SystemErr R javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
SystemErr R at com.ibm.jsse2.b.c(b.java:169)
SystemErr R at com.ibm.jsse2.b.a(b.java:228)
SystemErr R at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:242)
SystemErr R at com.ibm.jsse2.SSLSocketImpl.h(SSLSocketImpl.java:437)
SystemErr R at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:142)
SystemErr R at com.ibm.jsse2.SSLSocketImpl.startHandshake(SSLSocketImpl.java:686)
SystemErr R at org.apache.commons.net.ftp.FTPSClient.sslNegotiation(FTPSClient.java:240)
SystemErr R at org.apache.commons.net.ftp.FTPSClient._connectAction_(FTPSClient.java:171)
에서 자세한 내용을보실 수 있습니다 코드 (21)가 아주 좋은 사용으로 진행에도 불구하고. –
마이크가 지적한 것처럼 "SFTP"는 FTP/FTPS와 관련이없는 "SSH 파일 전송 프로토콜"입니다. FTPS가 아닌 SFTP 클라이언트가 필요할 수 있습니다. –