inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

2장. 작전2: FlatFileItemWriter (죽음을 파일에 새기다 ☠️)

[분산 서버 로그 처형 작전] 중 scp 오류

131

nine-mo

작성한 질문수 2

2

[작전명: 분산 서버 로그 처형 작전]

[상황설명]

: 코드 작성 후 최종 실행시, 비밀번호 입력 프롬프트 없이 아래 에러 발생

org.springframework.batch.core.step.tasklet.SystemCommandException: Execution of system command failed with exit code 255
        at org.springframework.batch.core.step.tasklet.SystemCommandTasklet.execute(SystemCommandTasklet.java:129) ~[spring-batch-core-5.2.2.jar:5.2.2]

[환경]

: mac, intellij

[분석]

: 터미널에서는 scp localhost 하면 비밀번호 프롬프트가 잘 떴으나,

배치실행시에만 에러가 발생

[추가시도]

ssh-keygen -t rsa -b 4096 으로 키쌍 생성 후

ssh-copy-id -i ~/.ssh/id_rsa.pub localhost 공개키를 등록 후

ssh localhost 하여 비밀번호 없이 접근 확인

 

이후 정상 처형 확인 완료

java spring spring-boot spring-batch backend

답변 2

1

KILL-9

오, nine-mo! 꿀팁 좋다. 내일 밤중 강의 반영 예정 ㄱㄱㄱ 💀
[시스템 분석 완료]
rm -rf password_prompt_hell
chmod +x ssh_key_authentication

오늘은 GG다 💀

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

nine-mo님께서 제기하신, 분산 서버 로그 처형 작전을 실행하는 과정에서의 scp 명령어 오류에 대해 설명드리겠습니다. 이 문제는 종종 SSH를 통해 비밀번호 프롬프트 없이 원격 서버에 접근하려 할 때 발생합니다.

문제 원인

  • 비밀번호 프롬프트 발생: 일반적으로 SSH를 통해 다른 호스트에 접근할 때, 인증을 위해 비밀번호 입력을 요구합니다. 하지만 이런 자동화된 배치 작업의 경우, 비밀번호 입력 없이 명령이 수행되어야 합니다.
  • 공개키/비밀키 인증 설정 미완료: SSH 키를 생성하고, 공개키를 원격 서버에 등록하지 않은 경우 비밀번호 요구가 발생합니다.

해결 방법

  1. SSH 키 생성 및 등록:

    • ssh-keygen -t rsa -b 4096 명령어로 RSA2048 혹은 4096 비트 키 쌍을 생성합니다.
    • ssh-copy-id -i ~/.ssh/id_rsa.pub user@host를 통해 공용 키를 대상 서버에 복사하여 비밀번호 프롬프트를 제거할 수 있습니다.
  2. 비밀번호 없이 자동 로그인 테스트:

    • SSH 공개 키가 제대로 등록되었는지 ssh localhost 명령어를 통해, 비밀번호 없이 원격에 접속되는지 확인합니다. 이 과정이 완료되면 배치 작업도 문제없이 실행될 것입니다.

관련 링크

이와 유사한 문제 및 해결 방법은 이 링크에서 다루고 있으며, SSH 키를 활용한 인증 설정이 전체적인 배치 프로세스를 어떻게 개선하는지 보시는데 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

형 이번에 낸 책이랑 강의 내용에 차이가 있어?

1

45

1

형 나 몰래 책내면 모를 줄 알고?

1

37

1

강의 중복 확인 요청

0

28

1

중복내용 제보?!

1

50

2

Json 요청 처리

1

52

2

[건의][6장][작전1] deprecated 메소드

1

55

2

[예제][3장][작전2] windows 에서 마지막 예제

0

43

1

[오타][3장][작전1] 형 이건 빨리 해줘

2

110

2

[오타] "리스너 활용: 시스템 완전 장악 매뉴얼" 부분

1

67

1

[오타] "JobScope와 StepScope 사용 시 주의사항" 부분

1

69

2

spring boot 4 + spring batch 6 설정 변경?

1

116

2

Batch 패키지 설계 — 실무에서 Job 단위 구조

1

102

1

Spring batch를 실행해줄 스케줄러와 batch 실행 환경

1

92

1

메타테이블에 데이터가 생기지 않는 이유

1

121

2

Spring Batch 4.3.10 ExecutionContext 한글 인코딩 이슈 관련 문의

1

118

2

@StepScope 또는 @JobScope와 JobOperator

1

154

5

Remote Partitioning

1

113

2

킬구형 실무에서는 JPA ItemReader / ItemWriter를 더 선호해? 아니면 JDBC itemReader/ItemWriter를 더 선호해?

1

145

2

병렬 중첩

1

105

3

형 코드에 public static class 이게 뭐야 ?

1

142

3

ExitStatus

1

71

2

Batch6: jobOperator.startNextInstance() throws UnexpectedJobExecutionException

1

130

5

jdbc 커서, 페이징에서 일대다 관계 데이터 뻥튀기 조회 처리 방법 질문

1

125

2

SkipPolicy는 여러번 불릴 수 있는가?

1

58

2