-
[Jenkins] 젠킨스에서 sshpass, scp로 파일 전송에서 권한 오류가 날 때CICD 2021. 9. 29. 16:10
젠킨스에서 sshpasss와 scp를 이용해 파일을 다른 서버로 복사해 주는 프로젝트를 만들었다. 하지만 권한 문제가 발생 하였다.
시나리오:
- 내 서버에 구축한 jenkins에서 220.90.203.1 외부 서버로 파일을 전송하려한다.
- 젠킨스에서 Build - Excute shell 에 다음과 같은 커맨드를 입력해 놓았다.
sshpass -fpasswd scp -r -o StrictHostKeyChecking=no /home/test.txt root@220.90.203.1:/home/galaxy
Fig 1. 젠킨스에서 sshpass와 scp를 이용해 파일을 서버로 전송해 주었을 때 나는 퍼미션 에러 (permission error) 이는 내 컴퓨터에 등록되어 있던 외부 서버의 ssh-keygen이 꼬여 있기 때문에 삭제하고 다시 ssh-keygen을 등록해 주어야 한다.
해결 방법:
1. 젠킨스를 구축한 서버에서 (docker image로 구축하였으면 도커 이미지 안에 들어가서 해야 한다)
ssh-keygen -f "/root/.ssh/known_hosts" -R "[외부서버IP]:포트" ssh-keygen -f "/root/.ssh/known_hosts" -R "[220.90.203.1]:22"
다음과 같은 명령어로 ssh-keygen을 삭제 해주어야 한다.
2. 삭제 한 후 ssh로 외부서버에 한번 다시 접속을 해야 한다. 접속하는 과정에서 자동으로 ssh-keygen이 생성된다.
** permission error 지만 Fig 1. 과 동일한 에러가 아닐 경우에는 ssh-keygen 없어서 권한오류가 생기는 것이다. 내 서버에서 ssh로 파일 전송하고자 하는 서버에 접속을 한 번 해줘야 한다. 그 과정에서 ssh-keygen이 자동으로 생성된다.
ssh 접속은 https://galaxydeveloper.tistory.com/3 이 글을 참고
'CICD' 카테고리의 다른 글
[Jenkins] Jenkins에서 React 빌드 에러: gyp verb check python checking for Python executable "python" in the PATH (0) 2022.02.10 [Jenkins] gitlab authentication error: fatal: Authentication failed for http://~ (0) 2022.02.10 [Jenkins] Docker로 설치된 jenkins에 react 프로젝트 빌드를 위해 nodejs, npm, yarn 설치 (0) 2022.02.10 Tomcat 에 Spring - Tibero 올리기 (0) 2021.11.22 [Jenkins] 업데이트 후 가운데 정렬 문제 (0) 2021.09.14