컴퓨터 지식 네트워크 - 컴퓨터 구성 - Jenkins는 쉘 스크립트를 실행하고 scp를 사용하여 비밀번호 없는 전송 실패를 전달합니다.

Jenkins는 쉘 스크립트를 실행하고 scp를 사용하여 비밀번호 없는 전송 실패를 전달합니다.

문제: Jenkins는 기본적으로 jenkins 사용자를 사용하여 시작합니다. jenkins 사용자는 ssh 비밀번호 없는 로그인을 수행할 권한이 없으므로 실행이 실패합니다.

참고: 구성 후 Linux 이중 시스템 상호 신뢰, jenkins 쉘 스크립트에서 scp 비밀번호 없는 전송 조건을 충족하려면 대상 시스템에 공개 키도 추가해야 합니다.

1. 로그인 확인

1. jenkins 사용자 전환

# su jenkins

전환 후에도 여전히 루트 계정

2. 분석 및 해결 방법:

2.1 /etc/passwd 파일의 /bin/bash는 다음과 같아야 합니다. yum을 설치하면 /bin/false가 됩니다.

# vim /etc/passwd

jenkins: x:990:988:Jenkins 자동화 서버:/var/lib/jenkins: /bin/false( bash)

bin/false를 /bin/bash로 변경

전환 수행 다시

# su jenkins

bash-4.1$

2.2? 결과적으로 명령 프롬프트의 사용자 이름은 jenkins가 아니라 bash-4.1이 되었습니다. $. 그 이유는 jenkins를 설치할 때 jenkins가 jenkins 사용자만 생성하고 사용자에게 홈 디렉터리를 제공하지 않았기 때문입니다.

# vim ~/.bash_profile

추가 ?export PS1='[\u@\h \W]\$' 파일 끝에 파일을 실행하고 변경 사항을 적용합니다. 항목이 작동합니다

# source ~/.bash_profile

성공 여부 확인 # su jenkins

2. jenkins 시스템 사용자에 대해 비밀번호 없는 로그인 활성화

1. Jenkins 사용 중 sudo 명령을 사용하는 경우 스크립트에서 다음 오류가 발생할 수 있습니다:

sudo: tty가 없고 Askpass 프로그램이 지정되지 않았습니다.

이는 sudo 명령을 실행할 때 Jenkins 서버의 컨텍스트가 올바르지 않기 때문입니다. , 이 명령 실행 시 예외가 발생합니다.

2.1 해결 방법:

# sudo visudo

끝에 jenkins ALL=(ALL) NOPASSWD: ALL

2.2를 추가하세요. file jenkins를 다시 시작하고 테스트

# su jenkins

# sudo su -s /bin/bash jenkins

테스트에 성공했으며 Jenkins 비밀번호 없는 로그인은 성공적인.

PS: 위 파일을 수정하기 위해 실수로 /etc/sudoers의 권한을 수정한 경우 다음 오류가 발생합니다.

sudo :/etc/sudoers는 누구나 쓰기 가능합니다.

sudo : 유효한 sudoers 소스를 찾을 수 없습니다. 종료 중

sudo : 폴링 플러그인을 초기화할 수 없습니다.

이것은 Linux의 보호 메커니즘입니다.

따라서 위의 오작동이 발생하면 다음 명령을 실행하여 문제를 해결해야 합니다:

$ pkexec chmod 0440 /etc/sudoers

3. SSH 비밀번호 없는 로그인을 활성화합니다. Jenkins 사용자

1. ssh 설치

# yum install ssh

1.1 부팅 시 SSH 서비스가 자동으로 시작되도록 설정

# sudo systemctl 활성화 sshd

1.2 SSH 시작

#?sudo systemctl start sshd

2. 젠킨스 사용자 키 인증서 생성

# su jenkins

# ssh-keygen -t rsa

2.1 생성 성공 여부 확인

#?/var/lib/jenkins/.ssh/

# ls

3. 공개 키를 대상 Linux 시스템으로 전송합니다.

ssh-copy-id -i /var/lib/jenkins/.ssh/id_rsa .pub root@target ip:path

---------------------- ------------- ----------- --------

참조:/weixin_43840640/article/details/90371472

上篇: psv200 下篇: k헬스아이란 무엇인가요?
관련 내용