검색

12.5. 호스트의 공개 SSH 키 관리

download PDF
OpenSSH는 공개 키를 사용하여 호스트를 인증합니다. 한 시스템에서 다른 시스템에 액세스를 시도하고 해당 키 쌍을 표시합니다. 호스트가 처음 인증될 때 대상 시스템의 관리자는 요청을 수동으로 승인해야 합니다. 그런 다음 시스템은 known_hosts 파일에 호스트의 공개 키를 저장합니다. 원격 시스템이 대상 시스템에 다시 액세스하려고 할 때마다 대상 시스템은 known_hosts 파일을 확인한 다음 승인된 호스트에 대한 액세스 권한을 자동으로 부여합니다.
이 시스템에는 몇 가지 문제가 있습니다.
  • known_hosts 파일은 호스트 IP 주소, 호스트 이름 및 키의 중단에 호스트 항목을 저장합니다. 이 파일은 IP 주소가 변경되거나(가상 환경 및 데이터 센터에서 일반적으로) 키가 업데이트되는 경우 최신 상태가 될 수 있습니다.
  • SSH 키는 환경의 모든 시스템에 수동 및 별도로 배포해야 합니다.
  • 관리자는 호스트 키를 승인하여 구성에 추가할 수 있지만, 호스트 또는 키 발행자를 올바르게 확인하여 보안 문제를 생성할 수 있습니다.
Red Hat Enterprise Linux에서 SSSD(System Security Services Daemon)는 호스트 SSH 키를 캐시 및 검색하여 애플리케이션 및 서비스가 호스트 키의 한 위치만 찾도록 구성할 수 있습니다. SSSD는 ID 정보 공급자 중 하나로 Identity Management를 사용할 수 있으므로 Identity Management는 키의 범용이고 중앙 집중식 리포지토리를 제공합니다. 관리자는 호스트 SSH 키 배포, 업데이트 또는 확인에 대해 걱정할 필요가 없습니다.

12.5.1. SSH 키 형식 정보

키가 IdM 항목에 업로드되면 키 형식은 OpenSSH 스타일 키 또는 원시 RFC 4253 스타일 Blob 일 수 있습니다. 모든 RFC 4253 스타일 키는 IdM LDAP 서버에 가져와 저장하기 전에 자동으로 OpenSSH 스타일 키로 변환됩니다.
IdM 서버는 업로드된 키 Blob에서 RSA 또는 DSA 키와 같은 키 유형을 식별할 수 있습니다. 그러나 ~/.ssh/known_hosts 와 같은 키 파일에서 키 항목은 서버의 호스트 이름 및 IP 주소, 해당 유형, 키 자체로 식별됩니다. 예를 들어 다음과 같습니다.
host.example.com,1.2.3.4 ssh-rsa AAA...ZZZ==
이 키 항목은 순서 유형 key== 주석에 요소가 있는 사용자 공개 키 항목과 약간 다릅니다.
"ssh-rsa ABCD1234...== ipaclient.example.com"
키 파일에서 세 부분 모두 에 업로드하고 호스트 항목에 대해 볼 수 있습니다. 이 경우 ~/.ssh/known_hosts 파일의 호스트 공개 키 항목을 사용자 키의 형식과 일치하도록 다시 정렬해야 합니다. key= comment:
ssh-rsa AAA...ZZZ== host.example.com,1.2.3.4
키 유형은 공개 키의 콘텐츠에서 자동으로 결정할 수 있으며, 주석은 개별 키를 쉽게 식별할 수 있도록 선택 사항입니다. 유일한 필수 요소는 공개 키 Blob 자체입니다.

12.5.2. ipa-client-install 및 OpenSSH 정보

기본적으로 ipa-client-install 스크립트는 IdM 클라이언트 시스템에 OpenSSH 서버 및 클라이언트를 구성합니다. 또한 호스트 및 사용자 키 캐싱을 수행하도록 SSSD를 구성합니다. 기본적으로 클라이언트 구성은 호스트에서 키 캐싱 및 검색에 SSSD, OpenSSH 및 Identity Management를 사용하는 데 필요한 모든 구성을 수행합니다.
클라이언트 설치(기본값)를 사용하여 SSH 서비스를 활성화하면 ssh 서비스가 처음 시작될 때 RSA 키가 생성됩니다.
참고
ipa-client-install 을 사용하여 시스템을 IdM 클라이언트로 추가하면 클라이언트가 RSA 및ECDHE의 두 개의 SSH 키를 사용하여 생성됩니다.
추가 클라이언트 구성 옵션인 --ssh-trust-dns 가 있습니다. 이 옵션은 ipa-client-install 을 사용하여 실행할 수 있으며 키 지문이 저장된 IdM DNS 레코드를 신뢰하도록 OpenSSH를 자동으로 구성합니다.
또는 --no-sshd 옵션을 사용하여 클라이언트를 설치할 때 OpenSSH를 비활성화할 수 있습니다. 이렇게 하면 설치 스크립트가 OpenSSH 서버를 구성하지 못합니다.
또 다른 옵션인 --no-dns-sshfp 를 사용하면 호스트가 자체 DNS 항목을 사용하여 DNS SSHFP 레코드를 생성하지 못합니다. 이 옵션은 --no-sshd 옵션과 함께 사용하거나 사용하지 않고 사용할 수 있습니다.

12.5.3. 웹 UI를 통해 호스트 SSH 키 업로드

  1. 호스트의 키는 ~/.ssh/known_hosts 에서 검색할 수 있습니다. 예를 들어 다음과 같습니다.
    server.example.com,1.2.3.4 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApvjBvSFSkTU0WQW4eOweeo0DZZ08F9Ud21xlLy6FOhzwpXFGIyxvXZ52+siHBHbbqGL5+14N7UvElruyslIHx9LYUR/pPKSMXCGyboLy5aTNl5OQ5EHwrhVnFDIKXkvp45945R7SKYCUtRumm0Iw6wq0XD4o+ILeVbV3wmcB1bXs36ZvC/M6riefn9PcJmh6vNCvIsbMY6S+FhkWUTTiOXJjUDYRLlwM273FfWhzHK+SSQXeBp/zIn1gFvJhSZMRi9HZpDoqxLbBB9QIdIw6U4MIjNmKsSI/ASpkFm2GuQ7ZK9KuMItY2AoCuIRmRAdF8iYNHBTXNfFurGogXwRDjQ==
    필요한 경우 호스트 키를 생성합니다. OpenSSH 툴을 사용하는 경우 빈 암호를 사용하고 사용자 ~/.ssh/ 디렉터리가 아닌 다른 위치에 키를 저장하려면 기존 키를 덮어쓰지 않도록 해야 합니다.
    [jsmith@server ~]$ ssh-keygen -t rsa -C "server.example.com,1.2.3.4"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/jsmith/.ssh/id_rsa): /home/jsmith/.ssh/host_keys
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/jsmith/.ssh/host_keys.
    Your public key has been saved in /home/jsmith/.ssh/host_keys.pub.
    The key fingerprint is:
    SHA256:GAUIDVVEgly7rs1lTWP6oguHz8BKvyZkpqCqVSsmi7c server.example.com
    The key's randomart image is:
    +--[ RSA 2048]----+
    |              .. |
    |               .+|
    |          o   .* |
    |         o . .. *|
    |        S + .  o+|
    |         E . .. .|
    |        . = .  o |
    |         o .  ..o|
    |            .....|
    +-----------------+
  2. 키 파일에서 공개 키를 복사합니다. 전체 키 항목의 형식은 호스트 이름,IP 유형 key== 입니다. key== 만 필요하지만 전체 항목을 저장할 수 있습니다. 항목의 모든 요소를 사용하려면 주문 유형 key= [host name,IP]가 있도록 항목을 다시 정렬합니다.
    [jsmith@server ~]$ cat /home/jsmith/.ssh/host_keys.pub
    
    ssh-rsa AAAAB3NzaC1yc2E...tJG1PK2Mq++wQ== server.example.com,1.2.3.4
  3. Identity (ID) 탭을 열고 Hosts (호스트)를 선택합니다.
  4. 편집할 호스트 이름을 클릭합니다.

    그림 12.4. 호스트 목록

    호스트 목록
  5. Settings 탭의 Host Settings 영역에서 SSH 공개 키 옆에 있는 추가 를 클릭합니다.

    그림 12.5. SSH 키 추가

    SSH 키 추가
  6. 호스트의 공개 키에 붙여넣고 설정을 클릭합니다.

    그림 12.6. SSH 키 설정

    SSH 키 설정
    이제 SSH 공개 키 영역에 새 키가 표시됩니다. Show/Set 키를 클릭하면 제출된 키가 열립니다.
  7. 여러 키를 업로드하려면 공개 키 목록 아래의 추가 링크를 클릭하고 다른 키를 업로드합니다.
  8. 모든 키가 제출되면 호스트 페이지 상단에서 저장 을 클릭하여 변경 사항을 저장합니다.
공개 키가 저장되면 항목이 키 지문으로 표시되고, 주석(포함된 경우), 키 유형[2].
호스트 키를 업로드한 후 Identity Management를 ID 도메인 중 하나로 사용하도록 SSSD를 구성하고 22.6절. “OpenSSH 서비스에 캐시를 제공하도록 SSSD 구성” 에서 다루는 호스트 키 관리에 SSSD 툴링을 사용하도록 OpenSSH를 설정합니다.

12.5.4. 명령줄에서 호스트 키 추가

호스트 SSH 키는 호스트 추가를 사용하여 호스트를 생성할 때 또는 나중에 항목을 수정하여 IdM의 호스트 항목에 추가됩니다.
참고
RSA 및ECDHE 호스트 키는 설치 스크립트에서 SSH 서비스가 명시적으로 비활성화되지 않는 한 ipa-client-install 명령으로 생성됩니다.
  1. --sshpubkey 옵션과 함께 host-mod 명령을 실행하여 base64로 인코딩된 공개 키를 호스트 항목에 업로드합니다.
    호스트 키를 추가하면 호스트의 DNS SSHFP 항목도 변경되므로 --updatedns 옵션을 사용하여 호스트의 DNS 항목을 업데이트합니다.
    예를 들어 다음과 같습니다.
    [jsmith@server ~]$ ipa host-mod --sshpubkey="ssh-rsa RjlzYQo==" --updatedns host1.example.com
    실제 키는 일반적으로 등호(=)로 종료되지만 더 길어집니다.
    두 개 이상의 키를 업로드하려면 --sshpubkey 명령줄 매개변수를 여러 개 입력하십시오.
    --sshpubkey="RjlzYQo==" --sshpubkey="ZEt0TAo=="
    참고
    호스트에는 공개 키가 여러 개 있을 수 있습니다.
  2. 호스트 키를 업로드한 후 Identity Management를 ID 도메인 중 하나로 사용하도록 SSSD를 구성하고 22.6절. “OpenSSH 서비스에 캐시를 제공하도록 SSSD 구성” 에서 다루는 호스트 키 관리에 SSSD 툴링을 사용하도록 OpenSSH를 설정합니다.

12.5.5. 호스트 키 제거

호스트 키는 만료되면 제거할 수 있거나 더 이상 유효하지 않습니다.
개별 호스트 키를 제거하려면 웹 UI를 통해 키를 제거하는 것이 가장 쉽습니다.
  1. Identity (ID) 탭을 열고 Hosts (호스트)를 선택합니다.
  2. 편집할 호스트 이름을 클릭합니다.

    그림 12.7. 호스트 목록

    호스트 목록
  3. SSH 공개 키 영역에서 키 지문으로 삭제 를 클릭하여 제거합니다.

    그림 12.8. 공개 키 삭제

    공개 키 삭제
  4. 호스트 페이지 상단에서 저장 을 클릭하여 변경 사항을 저장합니다.
명령줄 툴을 사용하여 모든 키를 제거할 수 있습니다. 이 작업은 --sshpubkey= 가 빈 값으로 설정된 ipa host-mod 를 실행하여 수행됩니다. 그러면 호스트의 모든 공개 키가 제거됩니다. 또한 --updatedns 옵션을 사용하여 호스트의 DNS 항목을 업데이트합니다. 예를 들어 다음과 같습니다.
[jsmith@server ~]$ kinit admin
[jsmith@server ~]$ ipa host-mod --sshpubkey= --updatedns host1.example.com


[2] 키 유형이 업로드된 키에 포함되지 않은 경우 키 자체에서 자동으로 결정됩니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.