Oracle® Solaris 11.2의 보안 셸 액세스 관리

인쇄 보기 종료

업데이트 날짜: 2014년 9월
 
 

보안 셸에 대한 호스트 기반 인증 설정 방법

다음 절차에서는 서버에서 클라이언트의 개인 키가 인증에 사용되는 공개 키 시스템을 설정합니다. 사용자는 공개/개인 키 쌍을 만들어야 합니다.

절차에서 언급되는 클라이언트로컬 호스트라는 용어는 사용자가 ssh 명령을 입력한 시스템을 나타냅니다. 서버원격 호스트라는 용어는 클라이언트가 연결하려고 시도 중인 시스템을 나타냅니다.

시작하기 전에

root 역할을 맡아야 합니다. 자세한 내용은 Oracle Solaris 11.2의 사용자 및 프로세스 보안 의 지정된 관리 권한 사용을 참조하십시오.

  1. 클라이언트에서 호스트 기반 인증을 사용으로 설정합니다.

    클라이언트 구성 파일 /etc/ssh/ssh_config에서 다음 항목을 입력합니다.

    HostbasedAuthentication yes

    파일 구문은 ssh_config(4) 매뉴얼 페이지를 참조하십시오.

  2. 서버에서 호스트 기반 인증을 사용으로 설정합니다.

    서버 구성 파일 /etc/ssh/sshd_config에서 동일한 항목을 입력합니다.

    HostbasedAuthentication yes

    파일 구문은 sshd_config(4) 매뉴얼 페이지를 참조하십시오.

  3. 서버에서 관리자나 사용자는 클라이언트가 신뢰할 수 있는 호스트로 인식될 수 있게 해주는 파일을 구성합니다.

    자세한 내용은 sshd(1M) 매뉴얼 페이지의 FILES 절을 참조하십시오.

    • 관리자가 구성하는 경우 서버의 /etc/ssh/shosts.equiv 파일에 클라이언트를 항목으로 추가합니다.
      client-host
    • 사용자가 구성하는 경우 서버의 ~/.shosts 파일에 클라이언트에 대한 항목을 추가해야 합니다.
      client-host
  4. 서버에서 sshd 데몬이 신뢰할 수 있는 호스트 목록에 액세스할 수 있는지 확인합니다.

    /etc/ssh/sshd_config 파일에서 IgnoreRhostsno로 설정합니다.

    ## sshd_config
    IgnoreRhosts no
  5. 사이트의 보안 셸 사용자에게 두 호스트에 대한 계정이 있는지 확인합니다.
  6. 다음 방법 중 하나를 사용하여 클라이언트의 공개 키를 서버에 배치합니다.
    • 서버에서 sshd_config 파일을 수정한 후 사용자에게 ~/.ssh/known_hosts 파일에 클라이언트의 공개 호스트 키를 추가하도록 합니다.
      ## sshd_config
      IgnoreUserKnownHosts no

      사용자 지침은 보안 셸에서 사용할 공개/개인 키 쌍 생성 방법을 참조하십시오.

    • 서버에 클라이언트의 공개 키를 복사합니다.

      호스트 키는 /etc/ssh 디렉토리에 저장되어 있습니다. 일반적으로 첫번째 부트 시 sshd 데몬이 키를 생성합니다.

      1. 서버에서 /etc/ssh/ssh_known_hosts 파일에 키를 추가합니다.

        클라이언트에서 한 행에 백슬래시 없이 다음 명령을 입력합니다.

        # cat /etc/ssh/ssh_host_dsa_key.pub | ssh RemoteHost \
        'cat >> /etc/ssh/ssh_known_hosts && echo "Host key copied"'

        주 -  서버에 호스트 키가 없을 경우 보안 셸을 사용하면 다음과 같은 오류 메시지가 생성됩니다.
        Client and server could not agree on a key exchange algorithm:
        client "diffie-hellman-group-exchange-sha256,diffie-hellman-group-
        exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1",
        server "gss-group1-sha1-toWM5Slw5Ew8Mqkay+al2g==". Make sure host keys 
        are present and accessible by the server process. See sshd_config(4) 
        description of "HostKey" option.

      2. 프롬프트가 표시되면 로그인 암호를 제공합니다.

        파일이 복사되면 "Host key copied" 메시지가 표시됩니다.

        /etc/ssh/ssh_known_hosts 파일의 각 행은 공백으로 구분된 필드로 구성됩니다.

        hostnames algorithm-name publickey comment
      3. /etc/ssh/ssh_known_hosts 파일을 편집하고 복사된 항목에 RemoteHost를 첫번째 필드로 추가합니다.
        ## /etc/ssh/ssh_known_hosts File
        RemoteHost <copied entry>
예 1-1  호스트 기반 인증 설정

    다음 예에서는 각 호스트가 서버와 클라이언트로 구성됩니다. 각 호스트의 사용자는 다른 호스트에 대한 ssh 연결을 시작할 수 있습니다. 다음은 각 호스트를 서버와 클라이언트로 만드는 구성입니다.

  • 각 호스트에서 보안 셸 구성 파일에는 다음 항목이 포함되어 있습니다.

    ## /etc/ssh/ssh_config
    HostBasedAuthentication yes
    #
    ## /etc/ssh/sshd_config
    HostBasedAuthentication yes
    IgnoreRhosts no
  • 각 호스트에서 shosts.equiv 파일에는 다른 호스트에 대한 항목이 포함되어 있습니다.

    ## /etc/ssh/shosts.equiv on machine2
    machine1
    ## /etc/ssh/shosts.equiv on machine1
    machine2
  • 각 호스트의 공개 키는 다른 호스트의 /etc/ssh/ssh_known_hosts 파일에 있습니다.

    ## /etc/ssh/ssh_known_hosts on machine2
    … machine1
    ## /etc/ssh/ssh_known_hosts on machine1
    … machine2
  • 사용자는 두 호스트 모두에 대한 계정을 가집니다. 예를 들어, 사용자 John Doe에 대해 다음 정보가 나타납니다.

    ## /etc/passwd on machine1
    jdoe:x:3111:10:J Doe:/home/jdoe:/bin/sh
    ## /etc/passwd on machine2
    jdoe:x:3111:10:J Doe:/home/jdoe:/bin/sh