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

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

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

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

이 세 노드의 내 사용자 이름은 all xyz이고, 이 노드의 시스템은 all 입니다 Ubuntu14.04.

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

답변1

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

서로 다른 파일 시스템이 있는 경우 이 작업을 수동으로 수행해야 합니다. 사용자 에 대한 새 SSH 키를 생성 xyz하고 ssh-copy-id다른 각 서버에 대한 SSH 키를 생성합니다. 이는 서버 수에 따라 N²처럼 확장되는데, 이는 좋지 않습니다.

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

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

관련 정보