서버 A에 대한 SSH 작업(비밀번호 없음)을 실행하고 스크립트를 실행하는 젠킨스 서버가 있습니다. 이것은 완벽하게 작동하며 다음을 수행하여 설정했습니다.
ssh-keygen -t rsa
젠킨스 소개Jenkins를
id_rsa.pub
서버 A에 복사했습니다(인증 키에 수동으로 추가하고 작업을 실행했는데ssh-copy-id -i .ssh/id_rsa.pub
둘 다 작동하는 것 같습니다).비밀번호 없이 Jenkins에서 서버 A로 SSH 성공
내가 할 수 없는 일은 정확히 동일한 키 생성기, 복제본 및 SSH를 사용하여 Jenkins에서 서버 B로 동일한 동작을 복제하는 것입니다. 내가 다르게 한 유일한 일은 id_rsa_x.pub
기존 이름을 덮어쓰지 않는 것처럼 id_rsa에 다른 이름을 부여한 것입니다. 또한 공개 키의 위치를authorized_keys2로 변경해 보았지만 제 것을 보면 /etc/ssh/sshd_config
기본적으로 비활성화되어 있는 것 같습니다. Google에서 검색한 모든 내용이 이것이 올바른 방법임을 암시하므로 이러한 동작이 왜 발생하는지 잘 모르겠습니다.
나는 이것이 sshd_config의 잘못된 구성이거나 Jenkins 서버가 CentOS 6.9이고 ssh 버전(OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 2013-02-11)이고 서버 A와 B가 CentOS 7.4라고 생각합니다. 이 두 서버의 버전 제어를 실행 ssh -v
하거나 얻을 수 없습니다 .ssh -v localhost
(여기에 콘텐츠를 추가하는 방법을 찾으려고 노력하고 있지만 sshd_config
모든 것이 콘텐츠를 더 크고 굵게 만듭니다.)
답변1
키젠을 반복하지 마세요. 이렇게 하면 키가 다시 생성되고 서버 A에 대한 액세스가 중단됩니다.
먼저 keygen 작업을 수행한 다음 모든 서버에서 copy id 명령을 실행하면 됩니다.
요약하자면, keygen을 실행하세요.한 번:
- SSH 등록 시스템 실행
- SSH를 실행하여 ID를 서버 a에 복사하세요.
- SSH를 실행하여 ID를 서버 b에 복사하세요.
- SSH를 실행하여 ID를 서버 C 등에 복사하세요. :)