db2locssh 설정

db2locssh 을 구성하여 원격 루트 로그인을 활성화하지 않고도 Db2 pureScale 원격 루트 로그인 및 비밀번호 없는 SSH를 활성화하지 않고도 기능을 설치할 수 있습니다.

시작하기 전에

참고 : db2locssh 사용하려면 /var 루트 소유의 setuid 실행 파일의 실행을 허용해야 합니다. db2locssh nosuid 옵션으로 디렉토리를 마운트한 경우에는 작동하지 않습니다.
다음과 같이 SSH 구성 파일을 수정하여 클러스터의 각 호스트에서 원격 루트 로그인을 비활성화하십시오.
 /etc/ssh/sshd_config:
 PermitRootLogin no #disabled  
변경사항을 적용하려면 SSH 디먼을 재시작하십시오.

Linux® (RHEL 7이상):

 systemctl restart sshd

기타 Linux 플랫폼의 경우:

 /etc/init.d/sshd restart

AIX® 의 경우

 stopsrc -s sshd 
 startsrc -s sshd

이 타스크에 대한 정보

이 태스크에서는 SSH가 없는 원격 루트 로그인 및 비밀번호를 사용하지 않고 Db2 pureScale 기능을 설치하도록 db2locssh 를 구성하는 방법에 대해 설명합니다.

프로시저

db2locssh를 구성하려면 다음을 수행하십시오.

  1. 동일한 UID 및 GID를 가진 모든 호스트에서 루트가 아닌 사용자 ID(db2sshid)를 작성하십시오. db2sshid는 로컬 호스트와 원격 호스트 사이에 SSH(Secure Shell) 네트워크 프로토콜을 설정하는데 사용됩니다.
    참고: 언제든지 db2locssh에 대해 하나의 비루트 사용자 (db2sshid) 만 구성할 수 있습니다.
  2. 모든 호스트의 루트 사용자로 매체 경로에서 setup_db2locssh 스크립트를 실행하십시오.

    ./setup_db2locssh <db2sshid>

    이 유틸리티는 <media path>/db2/<platform>/utilities 아래 있습니다.

    스크립트는 다음과 같이 두 개의 키 쌍을 생성합니다.
    • 루트에 대한 RSA 공개 및 개인 키 쌍: root@host.privroot@host.pub under /var/db2/db2ssh
    • SSH 사용자의 RSA 공개 및 개인 키 쌍: $HOME/.ssh에 있는 id_rsaid_rsa.pub이고 여기서, $HOME은 db2sshid의 홈 디렉토리입니다.
  3. /var/db2/db2ssh 에서 생성된 루트 공개 키 를 모든 호스트에서 교환합니다. root@host.pub 이 교환이 끝나면 모든 호스트는 /var/db2/db2ssh 아래에 있는 다른 모든 호스트의 공개 키를 갖게 됩니다.
    예를 들어, hostA 및 hostB가 호스트의 이름인 경우 다음과 같이 루트 공개 키를 교환하십시오.
    • hostA의 루트 공개 키 root@hostA.pub를 hostB의 /var/db2/db2ssh 위치 아래에 복사하십시오.
    • hostB의 루트 공개 키 root@hostB.pub를 hostA의 /var/db2/db2ssh 위치 아래에 복사하십시오.
  4. SSH 사용자 (db2sshid) 로 $HOME/.ssh 아래에 authorized_keys 라는 파일을 작성하십시오. 여기서 $HOME은 db2sshid의 홈 디렉토리입니다. 각 호스트에서 authorized_keys 파일로 각 공개 키 id_rsa.pub 의 컨텐츠를 추가하십시오.
  5. authorized_keys 파일을 각 호스트의 $HOME/.ssh 디렉토리에 복사하십시오. 여기서 $HOME은 db2sshid의 홈 디렉토리입니다.
  6. chmod 644 authorized_keys 명령을 실행하여 모든 호스트에서 권한 부여된 키의 권한을 변경하십시오.
  7. 각 호스트에 SSH 사용자(db2sshid)로 로그인하고 모든 호스트에 대해 SSH를 실행하여 암호 프롬프트 없이 모든 호스트 사이에서 통신할 수 있는지 확인하십시오.

    예를 들어, 두 호스트 hostA 및 hostB가 있는 경우 다음과 같이 하십시오.

    • hostA에서 SSH 사용자(db2sshid)로:

      ssh <hostA>

      ssh <hostB>

    • hostB에서 SSH 사용자(db2sshid)로:

      ssh <hostA>

      ssh <hostB>

    참고: known_hosts 파일을 필수 필드로 채우려면 다음 항목을 인증하십시오.
    • 길고 짧은 규정된 호스트 이름입니다.
    • 규정된 긴 네트이름 및 짧은 네트이름.
  8. 원격 명령을 실행하여 db2locssh 구성을 확인하십시오.

    예를 들어, 두 호스트 hostA 및 hostB가 있는 경우 다음과 같이 하십시오.

    • hostA에서 루트 사용자로 다음 원격 명령을 실행하십시오.

      /var/db2/db2ssh/db2locssh hostB 'hostname'

      명령 출력은 hostB입니다.

      /var/db2/db2ssh/db2locssh hostA 'hostname'

      명령 출력은 hostA입니다.

    • hostB에서 루트 사용자로 다음 원격 명령을 실행하십시오.

      /var/db2/db2ssh/db2locssh hostB 'hostname'

      명령 출력은 hostB입니다.

      /var/db2/db2ssh/db2locssh hostA 'hostname' .

      명령 출력은 hostA입니다.

    db2locssh 명령이 실패하면 다음을 확인하십시오.

    • 루트 사용자로 db2locssh /var/db2/db2ssh/db2locssh 명령을 실행했는지 확인하십시오.
    • 루트가 아닌 사용자(db2sshid)로 암호 프롬프트 없이 모든 호스트에 대해 SSH를 실행할 수 있는지 확인하십시오.
    • 호스트 전체에서 클럭이 동기화되어 있는지 확인하십시오.
    • db2locssh 실패에 대한 자세한 정보는 운영 체제 로그를 확인하십시오.
    • 문제가 해결되지 않으면 IBM® 지원팀에 문의하십시오.