비밀번호 없는 SSH는 여러 서버에서 작동하지 않습니다

비밀번호 없는 SSH는 여러 서버에서 작동하지 않습니다

서버 A에 대한 SSH 작업(비밀번호 없음)을 실행하고 스크립트를 실행하는 젠킨스 서버가 있습니다. 이것은 완벽하게 작동하며 다음을 수행하여 설정했습니다.

  1. ssh-keygen -t rsa젠킨스 소개

  2. Jenkins를 id_rsa.pub서버 A에 복사했습니다(인증 키에 수동으로 추가하고 작업을 실행했는데 ssh-copy-id -i .ssh/id_rsa.pub둘 다 작동하는 것 같습니다).

  3. 비밀번호 없이 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을 실행하세요.한 번:

  1. SSH 등록 시스템 실행
  2. SSH를 실행하여 ID를 서버 a에 복사하세요.
  3. SSH를 실행하여 ID를 서버 b에 복사하세요.
  4. SSH를 실행하여 ID를 서버 C 등에 복사하세요. :)

관련 정보