2017-05-08 2 views
0

Apache Mina 기본 FTP 서버를 here에서 다운로드하여 설치했습니다. FTP를 사용하여 연결할 수 있습니다.Apache Mina FTP 서버 SFTP 구성 및 FileZiza 또는 WInscp를 사용하는 SFTP 연결 또는 모든 ftp 클라이언트가 보안 채널을 사용했습니다.

아래의 구성으로 SFTP를 구성하려고 할 때 FIleZila 또는 다른 클라이언트를 사용하여 SFTP 연결을 시도 할 때 오류가 발생합니다.

서버 구성 :

keytool -genkey -alias ftpkeya -keysize 1024 -dname "cn=mydomain.com,o=mycompany,ou=company,l=Capelle,s=NL,c=NL" -keystore mykeystore.jks -keypass ftpkey -storepass ftpkey -keyalg RSA 



keytool -list -keystore mykeystore.jks -storepass ftpkey -v 

keytool -export -alias ftpkeya -keystore mykeystore.jks -storepass ftpkey -file serverCertificate.arm -rfc 

내가 keysore 및 인증서를 생성하는 키 도구를 사용하고 있습니다 :

<?xml version="1.0" encoding="UTF-8"?> 
<server xmlns="http://mina.apache.org/ftpserver/spring/v1" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:beans="http://www.springframework.org/schema/beans" 
    xsi:schemaLocation=" 
     http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd" 
    id="myServer"> 

    <listeners> 
     <nio-listener name="default" port="2222" implicit-ssl="true" idle-timeout="60"> 
      <ssl> 
       <keystore file="mykeystore.jks" password="ftpkey" key-password="ftpkey" /> 
      </ssl> 
     </nio-listener> 
    </listeners> 

    <!--<file-user-manager file="users.properties" 
     encrypt-passwords="true" />--> 

아래 내가 인증서를 생성하기 위해 사용하고있는 명령입니다. 인증서를 생성하고 위의 서버 구성에서 서버를 구성 할 때 SFTP 지원이 시작되지만 FTP 클라이언트 연결을 사용하여 연결을 시도하면 거부됩니다.

내 서버 로그에 다른 FTP 클라이언트와 다른 예외가 발생합니다.

WinScp을 사용하는 동안 벨로우즈 서버 예외 로그.

[ WARN] 2017-05-08 09:49:16,018 [] [0:0:0:0:0:0:0:1] EXCEPTION : 
org.apache.mina.core.write.WriteToClosedSessionException 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:641) 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.removeNow(AbstractPollingIoProcessor.java:592) 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.removeSessions(AbstractPollingIoProcessor.java:562) 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$800(AbstractPollingIoProcessor.java:68) 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1149) 
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
[ WARN] 2017-05-08 09:49:16,019 [] [0:0:0:0:0:0:0:1] Client closed connection before all replies could be sent, last reply was WriteRequest: HeapBuffer[pos=0 lim=20 cap=20: 35 33 30 20 41 63 63 65 73 73 20 64 65 6E 69 65...] 
[ INFO] 2017-05-08 09:49:16,019 [] [0:0:0:0:0:0:0:1] CLOSED 

내가 filezila를 사용하고 때 더 다른.

클라이언트 측 로그 :

Status: Waiting to retry... 
Status: Connecting to 172.27.136.44:2222... 
Response: fzSftp started, protocol_version=8 
Command: open "[email protected]" 2222 
Error: Network error: Connection refused 
Error: Could not connect to server 

서버 측 로그 어떤에서 연결하는 동안 서버 로그에 어떤 차이가 안가 기대하고 FileZilla의에서

[ WARN] 2017-05-08 09:42:45,913 [] [172.27.136.44] EXCEPTION : 
     java.io.IOException: An existing connection was forcibly closed by the remote host 
    at sun.nio.ch.SocketDispatcher.read0(Native Method) 
    at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
    at sun.nio.ch.IOUtil.read(IOUtil.java:197) 
    at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) 
    at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:280) 
    at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:44) 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:695) 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:668) 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:657) 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:68) 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1141) 
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
[ERROR] 2017-05-08 09:42:45,916 [] [172.27.136.44] Exception caught, closing session 
java.io.IOException: An existing connection was forcibly closed by the remote host 
    at sun.nio.ch.SocketDispatcher.read0(Native Method) 
    at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
    at sun.nio.ch.IOUtil.read(IOUtil.java:197) 
    at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) 
    at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:280) 
    at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:44) 

을 연결하는 동안 FTP 클라이언트 나는 왜 여기에 문제가 있는지 이해하지 못한다. 본인이 참조했습니다 link.

도움과 정보를 미리 감사드립니다.

+0

클라이언트 측 로그도 표시하십시오. –

+0

클라이언트 측 filezilla 로그가 추가되었습니다. 나는 어디에서 winscp 로그를 얻을 수 있는지 모르겠습니다. –

+0

로그가 내 대답을 확인합니다. - FTP (S) 서버에 SFTP 프로토콜로 연결 중입니다. 그건 안돼.클라이언트 측에서 FTP (S)를 사용하십시오. 또는 SFTP 서버를 실제로 구현해야하는 경우 완전히 잘못된 경로에 있습니다. –

답변

0

분명히 FTP/FTPS/SSL/SFTP 자료와 혼동을 느낍니다.

  • SSL이 포함 된 FTP/TLS는 SFTP가 아닌 FTPS입니다. SFTP는 완전히 다른 호환되지 않는 프로토콜입니다. TLS/SSL을 사용하지 않습니다.
  • 기본 포트 2222가 혼란 스럽습니다. FTP는 포트 21을 사용하지만 묵시적인 TLS/SSL (implicit-ssl="true")의 경우 실제로는 포트 990을 사용합니다. 암시 적 TLS/SSL을 사용할 이유는 없지만 실제로는 SSH/SFTP 기본 포트 22를 기반으로합니다.

SFTP 프로토콜을 사용하여 FTP (S) 서버에 연결하려고합니다.

+0

우리는 기본 포트 22가 아닌 특정 포트가 필요하므로 테스트 목적으로 2222를 kpet합니다. 우리가 물건을 준비하고 살 준비가되면 우리가 벽을 열 것을 계획하고있는 그 같은 항구. –

+0

그래서 사용자 정의 포트를 원한다면 FTPS 구성으로 가야합니까? 나는이 링크를 참조하십시오 : https://www.howtogeek.com/194740/what-is-the-difference-between-ftps-and-sftp/ –

+0

나는 FTPS (FTP Secure 및 FTP-SSL) SFTP만이 귀하와 다른 링크가 공유하는 링크를 읽습니다. 내가 FTPS 서버를 구성하고 클라이언트와 서버간에 인증서를 교환 할 수 있다고 생각합니다. 내 필요가 무엇입니까. 나는 FTPS와 SFTS를 혼합하여 거의 혼란을 만들었다 .. –