본문 바로가기
카테고리 없음

jenkins server 연동 (오류 해결)

by zieunee 2021. 9. 15.
반응형

jenkins server 연동

Publish over SSH

image

jenkins서버에서 id_rsa 키값 발급받아서 키 넣어두고 ( 발급 방법 구글에 찾아보자 )

ssh Server설정

image

위 내용 추가

remote서버 root에서 ~/.ssh/authorized_keys 에 id_rsa.pub 키 등록 후 테스트 진행

(이렇게 되면 비번없이 서버 접속이 된다.)

 


Test Configuration 눌렀을 때 이런 오류가 나옴

jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to connect session for config [server__name]. Message [Auth fail]]

이유는 각자 jenkins ssh Server 설정에 적어놓은 userName에 해당하는 것으로 접속해야함!

 

1. reomote서버에서 내가 젠킨스 설정에 적은 UserName로 접속

  • su - userName
  • ~/.ssh/authorized_keys 여기에 jenkins서버에서 발급받은 id_rsa.pub key를 추가해줘야함

 


tip1!!!

서버에서 특정 계정으로 접속이 안되면...?

su - userName -s /bin/sh

userName 에 내가 원하는 계정 적어두고 저렇게 접속하기

 

tip 2!!!

Remote 서버의 authorized_keys에 Jenkins 서버의 id_rsa.pub의 공개키를 넣을때

.ssh파일의 권한은 700 authorized_keys는 600 이 아니면 ssh 인증이 동작하지 않는다.

 


그런데 또 이 이슈가 남

jenkins [Failed to connect SFTP channel. Message [java.io.IOException: Pipe closed]]

내가 써놓은 포트에 SFPT 가 닫혀있는 문제

난 젠킨스 페이지에서 ssh server 고급 설정에 22번 포트를 적어 놓았음

 

해결방법

22포트에서 모든 sftp접속 가능하게 해주던지

2222에서만 sftp가능하게 설정해주던지

 

1. 이건 /etc/ssh/sshd_config 파일에서 설정 해주면된다.

  • port 22만 열어두고 모든 sftp허용하고 싶으면?
    • port 22  # 22만 추가
    • Subsystem sftp /usr/libexec/openssh/sftp-server
  • port 22 / port 2222 둘 다 열어두고 2222에서만 sftp허용하고 싶으면?
    • port 22 
      Port 2222 # 둘다 추가
    • Subsystem sftp /bin/false # sftp허용을 안한다는 의미
      # 2222번 포트만 허용
      Mach LocalPort 2222 
      AllowTCPForwading no
      XllForwarding no
      ForceCommand internal-sftp -f AUTHPRIV -l VERBOSE
      # 대충 적어서... 구글링 해보자!
       

2. 내용 수정 후 service sshd restart 해보기

 


근데 또 안됨 ...!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Password 떄문에 안되는거 였음 ... expired 되었기 때문 ..

chage인가 ? 로 만기 일자 바꿔줬음 (원래 비번을 바꿔야하지만... )

 

그랬더니 정상적으로 success되었다

 

 

-----

2021-12-14 내용추가 

1)

뭐하다가 잘못 건들여서 authorized_keys 삭제해버림.... 

다시 했더니 계속 안되었는데 첫번째 이유는 jenkins 서버에서 id_rsa.pub키를 잘못 복사함 ... ㅎ ssh로 시작하는데 sh부터 복사했음 

 

그랬더니 또 아래 이슈가 나옴

jenkins [Failed to connect SFTP channel. Message [java.io.IOException: Pipe closed]]

비번 만료일때문인가 봤더니 역시나역시나~~~~ 

password expires가 2021-12-13까지였었음 

저 값은 직접적으로 못바꾸고 "Last password change" 를 바꾸면 그 값 + "minumum number of days between~~~어쩌고" 이 값을 더한 값으로 수정됨 

최근데 비번 바꾼날 이후로 내가 지정해준 날짜만큼 expired date 가 되는 것 ! 

 

chage -l jboss  --- (1)
chage -d 2021-xx-xx jboss --- (2)

(1) jboss 계정의 비번설정 정보 확인 후 

(2) -d 옵션으로 마지막 비번바꾼 날짜를 바꾼다.

 

success~~~~:)

 

--------

2) 

스크립트에서 

 scp nginx@172.16.177.35:${WORKSPACE}/build/libs/*.war ./

이 부분이 계속 안됨... 이유는 ? remote 서버에서 젠킨스 서버에 있는 war 파일을 가져오려면 젠킨스 서버의 nginx계정의 authorized_keys에 id_rsa.pub 키를 추가해주어야 하기 때문 ...........................

추가해주니 success

반응형