탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 관리: 보안 서비스 Oracle Solaris 11 Information Library (한국어) |
일반적으로 Secure Shell 데몬(sshd)은 부트 시 네트워크 서비스가 시작될 때 시작됩니다. 데몬은 클라이언트로부터의 연결을 수신 대기합니다. Secure Shell 세션은 사용자가 ssh, scp 또는 sftp 명령을 실행할 때 시작됩니다. 새 sshd 데몬은 각 수신 연결에 대해 포크됩니다. 포크된 데몬은 키 교환, 암호화, 인증, 명령 실행 및 클라이언트와의 데이터 교환을 처리합니다. 이러한 세션 특성은 클라이언트측 구성 파일 및 서버측 구성 파일로 결정됩니다. 명령줄 인수는 구성 파일의 설정을 대체할 수 있습니다.
클라이언트와 서버는 상호 간에 자체적으로 인증되어야 합니다. 인증에 성공하면 사용자가 원격으로 명령을 실행하고 호스트 간에 데이터를 복사할 수 있습니다.
sshd 데몬의 서버측 동작은 /etc/ssh/sshd_config 파일의 키워드 설정으로 제어됩니다. 예를 들어, sshd_config 파일은 서버에 대한 액세스가 허용되는 인증 유형을 제어합니다. 서버측 동작은 sshd 데몬이 시작된 경우 명령줄 옵션으로도 제어될 수 있습니다.
클라이언트측 동작은 다음 우선 순위에 따라 Secure Shell 키워드로 제어됩니다.
명령줄 옵션
사용자의 구성 파일 ~/.ssh/config
시스템 차원의 구성 파일 /etc/ssh/ssh_config
예를 들어, 사용자는 명령줄에서 -c aes256–ctr,aes128-ctr,arcfour를 지정하여 aes128–ctr보다 우선하는 시스템 차원의 구성 Ciphers 설정을 대체할 수 있습니다. 그러면 첫번째 암호 aes256–ctr이 우선합니다.
Secure Shell 프로토콜은 클라이언트 사용자/호스트 인증 및 서버 호스트 인증을 지원합니다. Secure Shell 세션을 보호하기 위해 암호화 키가 교환됩니다. Secure Shell은 다양한 인증 및 키 교환 방법을 제공합니다. 일부 방법은 선택 사항입니다. 클라이언트 인증 방식은 표 17-1에서 나열됩니다. 서버는 알려진 호스트 공개 키를 사용하여 인증됩니다.
인증의 경우 Secure Shell은 사용자 인증 및 주로 암호가 사용되는 일반적인 대화식 인증을 지원합니다. 또한 Secure Shell은 사용자 공개 키 및 신뢰할 수 있는 호스트 공개 키를 통한 인증을 지원합니다. 키는 RSA 또는 DSA일 수 있습니다. 세션 키는 서버 인증 단계에서 서명된 일시적인 Diffie-Hellman 키 교환으로 구성됩니다. 또한 Secure Shell은 인증에 GSS 자격 증명을 사용할 수 있습니다.
Secure Shell에서 인증에 GSS-API를 사용하려면 서버에 GSS-API 승인자 자격 증명이 있고 클라이언트에 GSS-API 개시자 자격 증명이 있어야 합니다. mech_dh 및 mech_krb5에 대한 지원이 제공됩니다.
mech_dh의 경우 root가 keylogin 명령을 실행했으면 서버에 GSS-API 승인자 자격 증명이 있는 것입니다.
mech_krb5의 경우 서버에 해당하는 호스트 주체의 /etc/krb5/krb5.keytab에 유효한 항목이 있으면 서버에 GSS-API 승인자 자격 증명이 있는 것입니다.
다음 중 하나가 완료된 경우 클라이언트에 mech_dh에 대한 개시자 자격 증명이 있는 것입니다.
keylogin 명령이 실행된 경우
pam_dhkeys 모듈이 pam.conf 파일에서 사용된 경우
다음 중 하나가 완료된 경우 클라이언트에 mech_krb5에 대한 개시자 자격 증명이 있는 것입니다.
kinit 명령이 실행된 경우
pam_krb5 모듈이 pam.conf 파일에서 사용된 경우
보안 RPC에서 mech_dh를 사용하는 방법은 14 장네트워크 서비스 인증(작업)을 참조하십시오. mech_krb5를 사용하는 방법은 19 장Kerberos 서비스 소개를 참조하십시오. 방식에 대한 자세한 내용은 mech(4) 및 mech_spnego(5) 매뉴얼 페이지를 참조하십시오.
인증이 완료되면 사용자가 일반적으로 셸을 요청하거나 명령을 실행하여 Secure Shell을 사용할 수 있습니다. 사용자는 ssh 명령 옵션을 통해 요청을 생성할 수 있습니다. 예를 들어, 의사 tty를 할당하거나 X11 연결 또는 TCP/IP 연결을 전달하거나 보안 연결을 통해 ssh-agent 인증 프로그램을 사용으로 설정하는 요청을 생성할 수 있습니다.
기본적인 사용자 세션 구성 요소는 다음과 같습니다.
사용자가 세션 모드를 시작하는 셸 또는 명령 실행을 요청합니다.
이 모드에서는 데이터가 클라이언트측 터미널을 통해 전송 또는 수신됩니다. 서버측에서는 데이터가 셸 또는 명령을 통해 전송됩니다.
데이터 전송이 완료되면 사용자 프로그램이 종료됩니다.
기존 연결을 제외하고 모든 X11 전달 및 TCP/IP 전달이 중지됩니다. 기존 X11 연결 및 TCP/IP 연결은 열린 상태로 유지됩니다.
서버가 클라이언트로 종료 상태 메시지를 보냅니다. 열린 상태로 유지되었던 전달된 포트 등 모든 연결이 해제되면 클라이언트가 서버에 대한 연결을 해제합니다. 그런 다음 클라이언트가 종료됩니다.