java8~

sftp 서버 연결

yongary 2025. 6. 17. 08:19

✅ 1. Maven 의존성 추가

<dependency>
  <groupId>com.jcraft</groupId>
  <artifactId>jsch</artifactId>
  <version>0.1.55</version>
</dependency>

✅ 2. Java 코드: SFTP 연결 + 로그인 + 설정

import com.jcraft.jsch.*;

public class SftpUploader {
    public void connectSftp(String server, int port, String user, String pass) {
        Session session = null;
        ChannelSftp sftpChannel = null;

        try {
            JSch jsch = new JSch();
            session = jsch.getSession(user, server, port);
            session.setPassword(pass);

            // 호스트 키 검증 비활성화 (테스트용, 실제 배포 시에는 키 검증 로직 필요)
            session.setConfig("StrictHostKeyChecking", "no");

            session.connect();
            log.info("SFTP Server: connected");

            Channel channel = session.openChannel("sftp");
            channel.connect();
            sftpChannel = (ChannelSftp) channel;
            log.info("SFTP Server: login OK");

            // 여기에 파일 업로드/다운로드 코드 추가 가능
            // sftpChannel.put(...);
            // sftpChannel.get(...);

        } catch (JSchException | SftpException e) {
            log.error("SFTP 연결 오류", e);
        } finally {
            if (sftpChannel != null) {
                sftpChannel.exit();
                log.info("SFTP Channel: closed");
            }
            if (session != null) {
                session.disconnect();
                log.info("SFTP Session: disconnected");
            }
        }
    }
}