탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 관리: 보안 서비스 Oracle Solaris 11 Information Library (한국어) |
Secure Shell에서 사용할 공개/개인 키 쌍 생성 방법
Secure Shell 개인 키에 대한 암호문 변경 방법
Secure Shell을 사용하여 원격 호스트에 로그인하는 방법
Secure Shell에서 암호 프롬프트를 줄이는 방법
기본적으로 Secure Shell에서는 호스트 기반 인증 및 두 프로토콜 사용이 사용으로 설정되어 있지 않습니다. 이러한 기본값을 변경하려면 관리 개입이 필요합니다. 포트 전달이 작동되도록 하려는 경우에도 관리 개입이 필요합니다.
다음 작업 맵에서는 Secure Shell 구성 절차에 대해 설명합니다.
|
다음 절차에서는 서버에서 클라이언트의 개인 키가 인증에 사용되는 공개 키 시스템을 설정합니다. 사용자는 공개/개인 키 쌍을 만들어야 합니다.
절차에서 언급되는 클라이언트와 로컬 호스트라는 용어는 사용자가 ssh 명령을 입력한 시스템을 나타냅니다. 서버와 원격 호스트라는 용어는 클라이언트가 연결하려고 시도 중인 시스템을 나타냅니다.
시작하기 전에
root 역할을 가진 사용자여야 합니다.
클라이언트 구성 파일 /etc/ssh/ssh_config에서 다음 항목을 입력합니다.
HostbasedAuthentication yes
파일 구문은 ssh_config(4) 매뉴얼 페이지를 참조하십시오.
서버 구성 파일 /etc/ssh/sshd_config에서 동일한 항목을 입력합니다.
HostbasedAuthentication yes
파일 구문은 sshd_config(4) 매뉴얼 페이지를 참조하십시오.
자세한 내용은 sshd(1M) 매뉴얼 페이지의 FILES 절을 참조하십시오.
client-host
client-host
/etc/ssh/sshd_config 파일에서 IgnoreRhosts를 no로 설정합니다.
## sshd_config IgnoreRhosts no
## sshd_config IgnoreUserKnownHosts no
사용자 지침은 Secure Shell에서 사용할 공개/개인 키 쌍 생성 방법을 참조하십시오.
호스트 키는 /etc/ssh 디렉토리에 저장되어 있습니다. 일반적으로 첫번째 부트 시 sshd 데몬이 키를 생성합니다.
클라이언트에서 한 행에 백슬래시 없이 명령을 입력합니다.
# cat /etc/ssh/ssh_host_dsa_key.pub | ssh RemoteHost \ 'cat >> /etc/ssh/ssh_known_hosts && echo "Host key copied"'
파일이 복사되면 "Host key copied" 메시지가 표시됩니다.
/etc/ssh/ssh_known_hosts 파일의 각 행은 공백으로 구분된 필드로 구성됩니다.
hostnames algorithm-name publickey comment
## /etc/ssh/ssh_known_hosts File RemoteHost <copied entry>
예 17-1 호스트 기반 인증 설정
다음 예에서는 각 호스트가 서버와 클라이언트로 구성됩니다. 각 호스트의 사용자는 다른 호스트에 대한 ssh 연결을 시작할 수 있습니다. 다음은 각 호스트를 서버와 클라이언트로 만드는 구성입니다.
각 호스트에서 Secure Shell 구성 파일에는 다음 항목이 포함되어 있습니다.
## /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
사용자는 다음과 같이 두 호스트에 대한 계정을 가집니다.
## /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
포트 전달은 로컬 포트가 원격 호스트로 전달될 수 있도록 합니다. 소켓이 로컬측의 포트를 수신 대기하도록 효과적으로 할당됩니다. 마찬가지로 원격측에서도 포트를 지정할 수 있습니다.
시작하기 전에
root 역할을 가진 사용자여야 합니다.
/etc/ssh/sshd_config 파일에서 AllowTcpForwarding의 값을 yes로 변경합니다.
# Port forwarding AllowTcpForwarding yes
remoteHost# svcadm restart network/ssh:default
지속 서비스 관리에 대한 자세한 내용은 Oracle Solaris 관리: 일반 작업의 6 장, 서비스 관리(개요) 및 svcadm(1M) 매뉴얼 페이지를 참조하십시오.
remoteHost# /usr/bin/pgrep -lf sshd 1296 ssh -L 2001:remoteHost:23 remoteHost
이 절차에서는 /etc/ssh/sshd_config 파일의 전역 섹션 뒤에 조건부 Match 블록을 추가합니다. Match 블록 뒤의 키워드/값 쌍은 일치 항목으로 지정된 사용자, 그룹, 호스트 또는 주소에 대한 예외를 지정합니다.
시작하기 전에
root 역할을 가진 사용자여야 합니다.
Match 블록을 전역 설정 뒤에 배치합니다.
TCP 전달을 사용할 수 있도록 허용되지 않아야 할 사용자가 있을 수도 있습니다. 다음 예에서는 public 그룹의 사용자 및 이름이 test로 시작하는 사용자가 TCP 전달을 사용할 수 없습니다.
## sshd_config file ## Global settings # Example (reflects default settings): # # Host * # ForwardAgent no # ForwardX11 no # PubkeyAuthentication yes # PasswordAuthentication yes # FallBackToRsh no # UseRsh no # BatchMode no # CheckHostIP yes # StrictHostKeyChecking ask # EscapeChar ~ Match Group public AllowTcpForwarding no Match User test* AllowTcpForwarding no
Match 블록 구문에 대한 자세한 내용은 sshd_config(4) 매뉴얼 페이지를 참조하십시오.