48.4. 호스트의 공용 SSH 키 관리

OpenSSH는 공개 키를 사용하여 호스트를 인증합니다. 한 시스템이 다른 시스템에 액세스하려고 시도하여 키 쌍을 제공합니다. 호스트가 처음 인증될 때 대상 시스템의 관리자는 요청을 수동으로 승인해야 합니다. 그런 다음 시스템은 known_hosts 파일에 호스트의 공개 키를 저장합니다. 원격 시스템이 대상 시스템에 다시 액세스하려고 할 때마다 대상 시스템은 known_hosts 파일을 확인한 다음 승인된 호스트에 대한 액세스 권한을 자동으로 부여합니다.

48.4.1. IdM 웹 UI를 사용하여 호스트의 SSH 키 업로드

Identity Management를 사용하면 공개 SSH 키를 호스트 항목에 업로드할 수 있습니다. OpenSSH는 공개 키를 사용하여 호스트를 인증합니다.

사전 요구 사항

  • IdM 웹 UI 또는 사용자 관리자 역할을 관리하는 관리자 권한.

절차

  1. ~/.ssh/known_hosts 파일에서 호스트의 키를 검색할 수 있습니다. 예를 들면 다음과 같습니다.

    server.example.com,1.2.3.4 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApvjBvSFSkTU0WQW4eOweeo0DZZ08F9Ud21xlLy6FOhzwpXFGIyxvXZ52+siHBHbbqGL5+14N7UvElruyslIHx9LYUR/pPKSMXCGyboLy5aTNl5OQ5EHwrhVnFDIKXkvp45945R7SKYCUtRumm0Iw6wq0XD4o+ILeVbV3wmcB1bXs36ZvC/M6riefn9PcJmh6vNCvIsbMY6S+FhkWUTTiOXJjUDYRLlwM273FfWhzHK+SSQXeBp/zIn1gFvJhSZMRi9HZpDoqxLbBB9QIdIw6U4MIjNmKsSI/ASpkFm2GuQ7ZK9KuMItY2AoCuIRmRAdF8iYNHBTXNfFurGogXwRDjQ==

    호스트 키를 생성할 수도 있습니다. SSH 키 생성을 참조하십시오.

  2. 키 파일에서 공개 키를 복사합니다. 전체 키 항목의 형식은 호스트 이름, IP 유형 key= 입니다. key== 만 필요하지만 전체 항목을 저장할 수 있습니다. 항목의 모든 요소를 사용하려면 순서 유형 key= [host name,IP] 가 있도록 항목을 다시 정렬합니다.

    cat /home/user/.ssh/host_keys.pub
    ssh-rsa AAAAB3NzaC1yc2E...tJG1PK2Mq++wQ== server.example.com,1.2.3.4
  3. IdM 웹 UI에 로그인합니다.
  4. Identity>Hosts 탭 으로 이동합니다.
  5. 편집할 호스트 이름을 클릭합니다.
  6. Host Settings 섹션에서 SSH 공개 키 추가 버튼을 클릭합니다.
  7. 호스트의 공개 키를 SSH 공개 키 필드에 붙여넣습니다.
  8. Set 을 클릭합니다.
  9. IdM 웹 UI 창 상단에 있는 저장 을 클릭합니다.

검증

  • Hosts Settings (호스트 설정) 섹션에서 키가 SSH 공개 키에 나열되어 있는지 확인합니다.

48.4.2. IdM CLI를 사용하여 호스트의 SSH 키 업로드

Identity Management를 사용하면 공개 SSH 키를 호스트 항목에 업로드할 수 있습니다. OpenSSH는 공개 키를 사용하여 호스트를 인증합니다. 호스트 SSH 키는 호스트 추가를 사용하여 호스트를 생성할 때 또는 나중에 항목을 수정하여 IdM의 호스트 항목에 추가됩니다.

참고 RSA 및 DSA 호스트 키는 설치 스크립트에서 SSH 서비스가 명시적으로 비활성화되지 않는 한 ipa-client-install 명령으로 생성됩니다.

사전 요구 사항

  • IdM 또는 사용자 관리자 역할을 관리하기 위한 관리자 권한.

절차

  1. --sshpubkey 옵션과 함께 host-mod 명령을 실행하여 base64로 인코딩된 공개 키를 호스트 항목에 업로드합니다.

    호스트 키를 추가하면 호스트의 SSHFP(Secure Shell 지문) 레코드가 변경되므로 --updatedns 옵션을 사용하여 호스트의 DNS 항목을 업데이트합니다. 예를 들면 다음과 같습니다.

    $ ipa host-mod --sshpubkey="ssh-rsa RjlzYQo==" --updatedns host1.example.com

    실제 키는 일반적으로 등호(=)로 끝나지만 더 길게 됩니다.

  2. 둘 이상의 키를 업로드하려면 여러 --sshpubkey 명령줄 매개변수를 입력합니다.

    --sshpubkey="RjlzYQo==" --sshpubkey="ZEt0TAo=="
    참고

    호스트에는 공용 키가 여러 개 있을 수 있습니다.

  3. 호스트 키를 업로드한 후 ID 도메인 중 하나로 Identity Management를 사용하고 호스트 키 관리에 SSSD 툴을 사용하도록 SSSD를 설정하고 OpenSSH 서비스에 대한 캐시를 제공하도록 SSSD 구성에서 다룹니다.

검증

  • ipa host-show 명령을 실행하여 SSH 공개 키가 지정된 호스트와 연결되어 있는지 확인합니다.

    $ ipa host-show client.ipa.test
    ...
    SSH public key fingerprint: SHA256:qGaqTZM60YPFTngFX0PtNPCKbIuudwf1D2LqmDeOcuA
                                  client@IPA.TEST (ssh-rsa)
    ...

48.4.3. IdM 웹 UI를 사용하여 호스트의 SSH 키 삭제

호스트 키가 만료되거나 더 이상 유효하지 않으면 제거할 수 있습니다. IdM 웹 UI를 사용하여 개별 호스트 키를 제거하려면 아래 단계를 따르십시오.

사전 요구 사항

  • IdM 웹 UI 또는 호스트 관리자 역할을 관리하는 관리자 권한

절차

  1. IdM 웹 UI에 로그인합니다.
  2. Identity>Hosts 탭 으로 이동합니다.
  3. 편집할 호스트 이름을 클릭합니다.
  4. 호스트 설정 섹션에서 제거할 SSH 공개 키 옆에 있는 삭제 를 클릭합니다.
  5. 페이지 상단에서 저장 을 클릭합니다.

검증

  • Host Settings (호스트 설정) 섹션에서 키가 더 이상 SSH 공개 키 아래에 나열되지 않았는지 확인합니다.

48.4.4. IdM CLI를 사용하여 호스트의 SSH 키 삭제

호스트 키가 만료되거나 더 이상 유효하지 않으면 제거할 수 있습니다. IdM CLI를 사용하여 개별 호스트 키를 제거하려면 아래 단계를 따르십시오.

사전 요구 사항

  • IdM CLI 또는 호스트 관리자 역할을 관리하기 위한 관리자 권한

절차

  • 호스트 계정에 할당된 모든 SSH 키를 삭제하려면 키를 지정하지 않고 ipa host-mod 명령에 --sshpubkey 옵션을 추가합니다.

    $ kinit admin
    $ ipa host-mod --sshpubkey= --updatedns host1.example.com

    --updatedns 옵션을 사용하여 호스트의 DNS 항목을 업데이트하는 것이 좋습니다.

IdM은 유형이 업로드된 키에 포함되지 않은 경우 키에서 자동으로 키 유형을 결정합니다.

검증

  • ipa host-show 명령을 실행하여 SSH 공개 키가 더 이상 지정된 호스트와 연결되지 않았는지 확인합니다.

    ipa host-show client.ipa.test
      Host name: client.ipa.test
      Platform: x86_64
      Operating system: 4.18.0-240.el8.x86_64
      Principal name: host/client.ipa.test@IPA.TEST
      Principal alias: host/client.ipa.test@IPA.TEST
      Password: False
      Member of host-groups: ipaservers
      Roles: helpdesk
      Member of netgroups: test
      Member of Sudo rule: test2
      Member of HBAC rule: test
      Keytab: True
      Managed by: client.ipa.test, server.ipa.test
      Users allowed to retrieve keytab: user1, user2, user3