JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
Oracle Solaris 관리: 보안 서비스     Oracle Solaris 11 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

제1부보안 개요

1.  보안 서비스(개요)

제2부시스템, 파일 및 장치 보안

2.  시스템 보안 관리(개요)

3.  시스템에 대한 액세스 제어(작업)

4.  바이러스 검사 서비스(작업)

5.  장치에 대한 액세스 제어(작업)

6.  기본 감사 보고 도구 사용(작업)

7.  파일에 대한 액세스 제어(작업)

제3부역할, 권한 프로파일 및 권한

8.  역할 및 권한 사용(개요)

9.  역할 기반 액세스 제어 사용(작업)

10.  Oracle Solaris의 보안 속성(참조)

제4부암호화 서비스

11.  암호화 프레임워크(개요)

12.  암호화 프레임워크(작업)

13.  키 관리 프레임워크

제5부인증 서비스 및 보안 통신

14.  네트워크 서비스 인증(작업)

15.  PAM 사용

16.  SASL 사용

17.  Secure Shell 사용(작업)

Secure Shell(개요)

Secure Shell 인증

기업의 Secure Shell

Secure Shell 및 OpenSSH 프로젝트

Secure Shell 및 FIPS-140 지원

Secure Shell(작업 맵)

Secure Shell 구성(작업)

Secure Shell 구성(작업 맵)

Secure Shell에 대한 호스트 기반 인증 설정 방법

Secure Shell에서 포트 전달을 구성하는 방법

SSH 시스템 기본값에 대한 사용자 및 호스트 예외를 만드는 방법

Secure Shell 사용(작업)

Secure Shell 사용(작업 맵)

Secure Shell에서 사용할 공개/개인 키 쌍 생성 방법

Secure Shell 개인 키에 대한 암호문 변경 방법

Secure Shell을 사용하여 원격 호스트에 로그인하는 방법

Secure Shell에서 암호 프롬프트를 줄이는 방법

Secure Shell에서 포트 전달을 사용하는 방법

Secure Shell을 사용하여 파일을 복사하는 방법

방화벽 외부의 호스트에 대한 기본 연결 설정 방법

18.  Secure Shell(참조)

제6부Kerberos 서비스

19.  Kerberos 서비스 소개

20.  Kerberos 서비스 계획

21.  Kerberos 서비스 구성(작업)

22.  Kerberos 오류 메시지 및 문제 해결

23.  Kerberos 주체 및 정책 관리(작업)

24.  Kerberos 응용 프로그램 사용(작업)

25.  Kerberos 서비스(참조)

제7부Oracle Solaris에서 감사

26.  감사(개요)

27.  감사 계획

28.  감사 관리(작업)

29.  감사(참조)

용어집

색인

Secure Shell 사용(작업)

Secure Shell은 로컬 셸과 원격 셸 간의 보안 액세스를 제공합니다. 자세한 내용은 ssh_config(4)ssh(1) 매뉴얼 페이지를 참조하십시오.

Secure Shell 사용(작업 맵)

다음 작업 맵에서는 사용자의 Secure Shell 사용 절차에 대해 설명합니다.

작업
설명
수행 방법
공개/개인 키 쌍을 만듭니다.
공개 키 인증이 필요한 사이트의 Secure Shell에 대한 액세스를 사용으로 설정합니다.
암호문을 변경합니다.
개인 키를 인증하는 구문을 변경합니다.
Secure Shell을 사용하여 로그인합니다.
원격으로 로그인할 때는 암호화된 Secure Shell 통신을 제공합니다. 이 프로세스는 rsh 명령을 사용하는 것과 유사합니다.
암호를 입력하지 않고 Secure Shell에 로그인합니다.
Secure Shell에 사용자 암호를 제공하는 에이전트를 사용하여 로그인할 수 있도록 합니다.
Secure Shell에서 포트 전달을 사용합니다.
TCP를 통한 Secure Shell 연결에서 사용할 로컬 포트 또는 원격 포트를 지정합니다.
Secure Shell을 사용하여 파일을 복사합니다.
호스트 간에 안전하게 파일을 복사합니다.
방화벽 내부의 호스트에서 방화벽 외부의 호스트에 안전하게 연결합니다.
HTTP 또는 SOCKS5와 호환되는 Secure Shell 명령을 사용하여 방화벽으로 분리된 호스트를 연결합니다.

Secure Shell에서 사용할 공개/개인 키 쌍 생성 방법

사용자 사이트에서 호스트 기반 인증 또는 사용자 공개 키 인증을 구현한 경우 사용자는 공개/개인 키 쌍을 생성해야 합니다. 추가 옵션은 ssh-keygen(1) 매뉴얼 페이지를 참조하십시오.

시작하기 전에

시스템 관리자에게 호스트 기반 인증이 구성되어 있는지 여부를 확인합니다.

  1. 키 생성 프로그램을 시작합니다.
    myLocalHost% ssh-keygen -t rsa
    Generating public/private rsa key pair.
    …

    여기서 -t는 알고리즘 유형으로, rsa, dsa 또는 rsa1 중 하나입니다.

  2. 키를 보관할 파일의 경로를 지정합니다.

    기본적으로 RSA v2 키를 나타내는 파일 이름 id_rsa가 괄호 안에 표시됩니다. Return 키를 눌러 이 파일을 선택할 수 있습니다. 또는 대체 파일 이름을 입력할 수도 있습니다.

    Enter file in which to save the key (/home/jdoe/.ssh/id_rsa):<Press Return>

    .pub 문자열을 개인 키 파일 이름에 추가하면 공개 키의 파일 이름이 자동으로 만들어집니다.

  3. 키를 사용하는 데 필요한 암호문을 입력합니다.

    이 암호문은 개인 키를 암호화하는 데 사용됩니다. 널 항목은 사용하지 않는 것이 좋습니다. 암호문은 입력할 때 표시되지 않습니다.

    Enter passphrase (empty for no passphrase): <Type passphrase>
  4. 확인용으로 암호문을 다시 입력합니다.
    Enter same passphrase again: <Type passphrase>
    Your identification has been saved in /home/jdoe/.ssh/id_rsa.
    Your public key has been saved in /home/jdoe/.ssh/id_rsa.pub.
    The key fingerprint is:
    0e:fb:3d:57:71:73:bf:58:b8:eb:f3:a3:aa:df:e0:d1 jdoe@myLocalHost
  5. 결과를 확인합니다.

    키 파일의 경로가 올바른지 확인합니다.

    % ls ~/.ssh
    id_rsa
    id_rsa.pub

    이 단계에서는 공개/개인 키 쌍이 만들어져 있습니다.

  6. 적절한 옵션을 선택합니다.
    • 관리자가 호스트 기반 인증을 구성한 경우 로컬 호스트의 공개 키를 원격 호스트에 복사해야 할 수도 있습니다.

      이제 원격 호스트에 로그인할 수 있습니다. 자세한 내용은 Secure Shell을 사용하여 원격 호스트에 로그인하는 방법을 참조하십시오.

      1. 한 행에 백슬래시 없이 명령을 입력합니다.
        % cat /etc/ssh/ssh_host_dsa_key.pub | ssh RemoteHost \
        'cat >> ~./ssh/known_hosts && echo "Host key copied"'
      2. 프롬프트가 표시되면 로그인 암호를 제공합니다.
        Enter password: <Type password>
        Host key copied
        %
    • 사이트에서 공개 키를 통한 사용자 인증을 사용하는 경우 원격 호스트에서 authorized_keys 파일을 채웁니다.
      1. 공개 키를 원격 호스트에 복사합니다.

        한 행에 백슬래시 없이 명령을 입력합니다.

        myLocalHost% cat $HOME/.ssh/id_rsa.pub | ssh myRemoteHost \
        'cat >> .ssh/authorized_keys && echo "Key copied"'
      2. 프롬프트가 표시되면 로그인 암호를 제공합니다.

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

        Enter password: Type login password
        Key copied
        myLocalHost%
  7. (옵션) 암호문에 대한 프롬프트를 줄입니다.

    절차는 Secure Shell에서 암호 프롬프트를 줄이는 방법을 참조하십시오. 자세한 내용은 ssh-agent(1)ssh-add(1) 매뉴얼 페이지를 참조하십시오.

Secure Shell 개인 키에 대한 암호문 변경 방법

다음 절차에서는 개인 키를 변경하지 않습니다. 이 절차에서는 개인 키에 대한 인증 방식인 암호문을 변경합니다. 자세한 내용은 ssh-keygen(1) 매뉴얼 페이지를 참조하십시오.

Secure Shell을 사용하여 원격 호스트에 로그인하는 방법

  1. Secure Shell 세션을 시작합니다.

    ssh 명령을 입력하고 원격 호스트의 이름 및 로그인을 지정합니다.

    myLocalHost% ssh myRemoteHost -l username

    프롬프트가 원격 호스트의 신뢰성을 묻습니다.

    The authenticity of host 'myRemoteHost' can't be established.
    RSA key fingerprint in md5 is: 04:9f:bd:fc:3d:3e:d2:e7:49:fd:6e:18:4f:9c:26
    Are you sure you want to continue connecting(yes/no)? 

    일반적으로 이 프롬프트는 원격 호스트에 대한 초기 연결에 표시됩니다.

  2. 프롬프트가 표시되면 원격 호스트 키의 신뢰성을 확인합니다.
    • 원격 호스트의 신뢰성을 확인할 수 없을 경우 no를 입력하고 시스템 관리자에게 문의하십시오.
      Are you sure you want to continue connecting(yes/no)? no

      관리자가 전역 /etc/ssh/ssh_known_hosts 파일을 업데이트합니다. 업데이트된 ssh_known_hosts 파일은 이 프롬프트가 표시되지 않도록 합니다.

    • 원격 호스트의 신뢰성을 확인한 경우 프롬프트에 응답하고 다음 단계를 계속합니다.
      Are you sure you want to continue connecting(yes/no)? yes
  3. Secure Shell에 대해 자신을 인증합니다.
    1. 프롬프트가 표시되면 암호문을 입력합니다.
      Enter passphrase for key '/home/jdoe/.ssh/id_rsa': <Type passphrase>
    2. 프롬프트가 표시되면 계정 암호를 입력합니다.
      jdoe@myRemoteHost's password: <Type password>
      Last login: Wed Sep  7 09:07:49 2011 from myLocalHost
      Oracle Corporation      SunOS 5.11       September 2011
      myRemoteHost%
  4. 원격 호스트에서 트랜잭션을 수행합니다.

    보낸 명령이 암호화되고, 수신한 응답이 암호화됩니다.

  5. Secure Shell 연결을 해제합니다.

    완료되면 exit를 입력하거나 일반적인 셸 종료 방법을 사용합니다.

    myRemoteHost% exit
    myRemoteHost% logout
    Connection to myRemoteHost closed
    myLocalHost%

Secure Shell에서 암호 프롬프트를 줄이는 방법

암호문 및 암호를 입력하지 않고 Secure Shell을 사용하려는 경우 에이전트 데몬을 사용할 수 있습니다. 세션 시작 시 데몬을 시작합니다. 그런 다음 ssh-add 명령을 사용하여 에이전트 데몬으로 개인 키를 저장합니다. 호스트마다 계정이 다른 경우 세션에 필요한 키를 추가합니다.

필요한 경우 다음 절차의 설명에 따라 수동으로 에이전트 데몬을 시작할 수 있습니다.

  1. 에이전트 데몬을 시작합니다.
    myLocalHost% eval `ssh-agent`
    Agent pid 9892
  2. 에이전트 데몬이 시작되었는지 확인합니다.
    myLocalHost% pgrep ssh-agent
    9892
  3. 에이전트 데몬에 개인 키를 추가합니다.

    ssh-add 명령을 입력합니다.

    myLocalHost% ssh-add
    Enter passphrase for /home/jdoe/.ssh/id_rsa: <Type passphrase>
    Identity added: /home/jdoe/.ssh/id_rsa(/home/jdoe/.ssh/id_rsa)
    myLocalHost%
  4. Secure Shell 세션을 시작합니다.
    myLocalHost% ssh myRemoteHost -l jdoe

    암호문 프롬프트가 표시되지 않습니다.

예 17-2 ssh-add 옵션 사용

이 예에서는 jdoe가 에이전트 데몬에 두 개의 키를 추가합니다. -l 옵션이 데몬에 저장된 모든 키를 나열하는 데 사용됩니다. 세션 종료 시 -D 옵션이 에이전트 데몬에서 모든 키를 제거하는 데 사용됩니다.

myLocalHost% ssh-agent
myLocalHost% ssh-add
Enter passphrase for /home/jdoe/.ssh/id_rsa: <Type passphrase>
Identity added: /home/jdoe/.ssh/id_rsa(/home/jdoe/.ssh/id_rsa)
myLocalHost% ssh-add /home/jdoe/.ssh/id_dsa
Enter passphrase for /home/jdoe/.ssh/id_dsa: <Type passphrase>
Identity added:
/home/jdoe/.ssh/id_dsa(/home/jdoe/.ssh/id_dsa)

myLocalHost% ssh-add -l
md5 1024 0e:fb:3d:53:71:77:bf:57:b8:eb:f7:a7:aa:df:e0:d1
/home/jdoe/.ssh/id_rsa(RSA)
md5 1024 c1:d3:21:5e:40:60:c5:73:d8:87:09:3a:fa:5f:32:53
/home/jdoe/.ssh/id_dsa(DSA)

User conducts Oracle Solaris Secure Shell transactions
myLocalHost% ssh-add -D
Identity removed:
/home/jdoe/.ssh/id_rsa(/home/jdoe/.ssh/id_rsa.pub)
/home/jdoe/.ssh/id_dsa(DSA)

Secure Shell에서 포트 전달을 사용하는 방법

로컬 포트가 원격 호스트에 전달되도록 지정할 수 있습니다. 소켓이 로컬측의 포트를 수신 대기하도록 효과적으로 할당됩니다. 보안 채널을 통해 이 포트에서 원격 호스트로의 연결이 설정됩니다. 예를 들어, IMAP4를 사용하여 원격으로 전자 메일을 얻기 위해 포트 143을 지정할 수 있습니다. 마찬가지로 원격측에서도 포트를 지정할 수 있습니다.

시작하기 전에

포트 전달을 사용하려면 관리자가 원격 Secure Shell 서버에서 포트 전달을 사용으로 설정했어야 합니다. 자세한 내용은 Secure Shell에서 포트 전달을 구성하는 방법을 참조하십시오.

예 17-3 로컬 포트 전달을 사용하여 메일 수신

다음 예에서는 로컬 포트 전달을 사용하여 원격 서버에서 안전하게 메일을 수신할 수 있는 방법을 보여 줍니다.

myLocalHost% ssh -L 9143:myRemoteHost:143 myRemoteHost 

이 명령은 myLocalHost의 포트 9143에서 포트 143으로 연결을 전달합니다. 포트 143myRemoteHost의 IMAP v2 서버 포트입니다. 메일 응용 프로그램을 실행한 사용자는 localhost:9143에서처럼 IMAP 서버에 대한 로컬 포트 번호를 지정합니다.

localhostmyLocalHost를 혼동하지 마십시오. myLocalHost는 가상 호스트 이름이며, localhost는 로컬 시스템을 식별하는 키워드입니다.

예 17-4 원격 포트 전달을 사용하여 방화벽 외부에서 통신

이 예에서는 기업 환경의 사용자가 외부 네트워크의 호스트에서 회사 방화벽 내부의 호스트로 연결을 전달할 수 있는 방법을 보여 줍니다.

myLocalHost% ssh -R 9022:myLocalHost:22 myOutsideHost

이 명령은 myOutsideHost의 포트 9022에서 로컬 호스트의 포트 22 sshd 서버로 연결을 전달합니다.

myOutsideHost% ssh -p 9022 localhost
myLocalHost%

Secure Shell을 사용하여 파일을 복사하는 방법

다음 절차에서는 scp 명령을 사용하여 호스트 간에 암호화된 파일을 복사하는 방법을 보여 줍니다. 로컬 호스트와 원격 호스트 간 또는 두 원격 호스트 간에 암호화된 파일을 복사할 수 있습니다. scp 명령은 인증 프롬프트를 표시합니다. 자세한 내용은 scp(1) 매뉴얼 페이지를 참조하십시오.

또한 sftp 보안 파일 전송 프로그램을 사용할 수 있습니다. 자세한 내용은 sftp(1) 매뉴얼 페이지를 참조하십시오. 예는 예 17-5를 참조하십시오.


주 - 감사 서비스는 ft 감사 클래스를 통해 sftp 트랜잭션을 감사할 수 있습니다. scp의 경우 감사 서비스는 ssh 세션에 대한 액세스 및 종료를 감사할 수 있습니다.


  1. 보안 복사 프로그램을 시작합니다.

    소스 파일, 원격 대상의 사용자 이름 및 대상 디렉토리를 지정합니다.

    myLocalHost% scp myfile.1 jdoe@myRemoteHost:~
  2. 프롬프트가 표시되면 암호문을 제공합니다.
    Enter passphrase for key '/home/jdoe/.ssh/id_rsa': <Type passphrase>
    myfile.1       25% |*******                      |    640 KB  0:20 ETA 
    myfile.1 

    암호문을 입력하면 진행 상황이 표시됩니다. 위 출력의 두번째 행을 참조하십시오. 다음과 같이 진행 상황이 표시됩니다.

    • 파일 이름

    • 파일 전송 백분율

    • 파일 전송 백분율을 나타내는 일련의 별표

    • 데이터 전송량

    • 전체 파일의 예상 도착 시간(ETA), 즉 남은 시간

예 17-5 sftp 명령 사용 시 포트 지정

이 예에서는 사용자가 sftp 명령으로 특정 포트를 사용하려고 합니다. 사용자는 -o 옵션을 사용하여 포트를 지정합니다.

% sftp -o port=2222 guest@RemoteFileServer

방화벽 외부의 호스트에 대한 기본 연결 설정 방법

Secure Shell을 사용하여 방화벽 내부의 호스트에서 방화벽 외부의 호스트로의 연결을 설정할 수 있습니다. 이 작업을 수행하려면 구성 파일에서 또는 명령줄 옵션으로 ssh에 대한 프록시 명령을 지정합니다. 명령줄 옵션은 예 17-6을 참조하십시오.

일반적으로 구성 파일을 통해 ssh 상호 작용을 사용자 정의할 수 있습니다.

두 가지 유형의 프록시 명령으로 파일을 사용자 정의할 수 있습니다. 프록시 명령 중 하나는 HTTP 연결에 사용되며, 나머지 하나는 SOCKS5 연결에 사용됩니다. 자세한 내용은 ssh_config(4) 매뉴얼 페이지를 참조하십시오.

  1. 구성 파일에서 프록시 명령 및 호스트를 지정합니다.

    다음 구문을 사용하여 필요에 따라 행을 여러 개 추가합니다.

    [Host outside-host]
    ProxyCommand proxy-command [-h proxy-server] \
    [-p proxy-port] outside-host|%h outside-port|%p
    Host outside-host

    명령줄에서 원격 호스트 이름이 지정된 경우 프록시 명령 지정을 인스턴스로 제한합니다. outside-host에 와일드카드를 사용하면 일련의 호스트에 프록시 명령 지정이 적용됩니다.

    proxy-command

    프록시 명령을 지정합니다.

    명령은 다음 중 하나일 수 있습니다.

    • HTTP 연결의 경우 /usr/lib/ssh/ssh-http-proxy-connect

    • SOCKS5 연결의 경우 /usr/lib/ssh/ssh-socks5-proxy-connect

    -h proxy-server- p proxy-port

    해당 옵션은 각각 프록시 서버와 프록시 포트를 지정합니다. 있을 경우 프록시는 프록시 서버 및 프록시 포트를 지정하는 환경 변수(예: HTTPPROXY, HTTPPROXYPORT, SOCKS5_PORT, SOCKS5_SERVERhttp_proxy)를 대체합니다. http_proxy 변수는 URL을 지정합니다. 옵션이 사용되지 않을 경우 관련 환경 변수를 설정해야 합니다. 자세한 내용은 ssh-socks5-proxy-connect(1)ssh-http-proxy-connect(1) 매뉴얼 페이지를 참조하십시오.

    outside-host

    연결할 특정 호스트를 지정합니다. 명령줄에서 호스트를 지정하려면 %h 대체 인수를 사용합니다.

    outside-port

    연결할 특정 포트를 지정합니다. 명령줄에서 포트를 지정하려면 %p 대체 인수를 사용합니다. Host outside-host 옵션을 사용하지 않고 %h%p를 지정하면 ssh 명령이 호출될 때마다 호스트 인수에 프록시 명령이 적용됩니다.

  2. 외부 호스트를 지정하여 Secure Shell을 실행합니다.

    예를 들어, 다음 명령어를 입력합니다.

    myLocalHost% ssh myOutsideHost

    이 명령은 개인 구성 파일에서 myOutsideHost에 대한 프록시 명령 지정을 검색합니다. 지정을 찾을 수 없을 경우 명령은 시스템 차원의 구성 파일 /etc/ssh/ssh_config 에서 찾습니다. ssh 명령이 프록시 명령으로 대체됩니다.

예 17-6 명령줄에서 방화벽 외부의 호스트에 연결

구성 파일에서 프록시 명령을 지정하는 방법은 방화벽 외부의 호스트에 대한 기본 연결 설정 방법에서 설명됩니다. 이 예에서는 ssh 명령줄에서 프록시 명령이 지정됩니다.

% ssh -o'Proxycommand=/usr/lib/ssh/ssh-http-proxy-connect \
-h myProxyServer -p 8080 myOutsideHost 22' myOutsideHost

ssh 명령에 대한 -o 옵션은 명령줄에서 프록시 명령을 지정하는 방법을 제공합니다. 이 예의 명령은 다음을 수행합니다.