서버 클러스터의 두 노드 간에 비밀번호 없는 SSH 로그인을 구현하는 방법

서버 클러스터의 두 노드 간에 비밀번호 없는 SSH 로그인을 구현하는 방법

서버 클러스터의 두 노드 간에 비밀번호 없는 로그인을 구현하는 방법에 대한 문제가 발생했습니다. 이제 다음 IP 주소를 가진 10개 노드로 구성된 서버 클러스터가 있습니다.

192.168.0.1 # node1
192.168.0.2 # node2
...
192.168.0.10 # node10

이 세 노드의 내 사용자 이름은 xyz이 노드의 시스템과 동일합니다 Ubuntu14.04.

이것은 여러 곳에서 답변해야 하는 표준적인 질문인 것 같지만 Google을 사용한 검색은 두 개의 노드 솔루션만 알려줍니다. 예를 들어, 생성된 공개 키를 파일 node1에 전달하여 나머지 노드에서 비밀번호 없는 로그인을 허용합니다. 하지만 이 접근 방식을 서버 클러스터의 두 노드로 확장하려면 어떻게 해야 할까요? 각 노드에서 공개 키를 수동으로 생성하고 각 노드의 공개 키를 나머지 노드에 복사해야 합니까? 일반적이고 편리한 방법이 있나요?authorized_keysnode2, ..., node10node1

답변1

클러스터 설정이 있는 경우 공유 파일 시스템이 있을 수 있습니다. 그렇다면 간단하게 SSH 키를 서버 자체에 추가하면 됩니다. 다른 서버에 연결하면 인증된 키 목록에서 자신의 키를 찾습니다. 그런 다음 모든 서버에서 모든 서버에 연결할 수 있습니다.

서로 다른 파일 시스템이 있는 경우 이 작업을 수동으로 수행해야 합니다. 이 xyz사용자와 다른 서버에 대해 ssh-copy-id새 SSH 키를 생성 할 수 있습니다 . 이는 서버 수에 따른 N² 확장과 비슷하지만 이는 좋지 않습니다.

SSH 키를 생성하여 모든 컴퓨터 에 복사할 수 있습니다 /home/xyz/.ssh/id_rsa. id_rsa.pub그런 다음 이 키를 모든 시스템에 등록하십시오. 이제 동일한 SSH 키를 사용하여 모든 서버에서 다른 서버로 로그인할 수 있습니다.

scp이를 배포하기 위해 -loop를 사용하여 for서버를 반복하는 빠른 스크립트를 작성하겠습니다 .

관련 정보