SSH, The Secure Shell: The Definitive Guide, 2nd Edition
by Daniel J. Barrett, Richard E. Silverman, Robert G. Byrnes
SSH 에이전트
SSH 에이전트는 개인 키를 캐시하고 SSH 클라이언트의 인증 관련 쿼리에 응답하는 프로그램입니다. [2.5] 모든 키 관련 작업을 처리하고 암호를 다시 입력할 필요가 없어 노동력을 크게 절약할 수 있는 장치입니다.
에이전트와 관련된 프로그램( )은 ssh-agent 및 ssh-add입니다. ssh-agent는 에이전트를 실행하고, ssh-add는 에이전트의 키 캐시에서 키를 삽입 및 제거합니다. 일반적인 사용법은 다음과 같습니다:
# Start the agent
$ ssh-agent $SHELL
# Load your default identity
$ ssh-add
Need passphrase for /home/barrett/.ssh/identity (barrett@example.com).
Enter passphrase: ********비밀번호를 한 번만 입력하면 개인 키가 해독되어 에이전트의 메모리에 저장됩니다. 이제부터는 에이전트를 종료하거나 로그아웃할 때까지 모든 키 관련 작업을 위해 SSH 클라이언트가 자동으로 에이전트에 연결합니다. 암호를 다시 입력할 필요가 없습니다.
이제 에이전트의 작동 방식에 대해 간략하게 설명하겠습니다. 그런 다음 상담원을 시작하는 다양한 방법, 다양한 구성 옵션 및 키를 상담원에 자동으로 로드하는 몇 가지 기법을 실용적으로 설명합니다. 마지막으로 상담원 보안 및 상담원 전달에 대해 다룹니다.
6.3.1 상담원은 키를 노출하지 않습니다.
상담원은 두 가지 작업을 수행합니다:
개인 키를 메모리에 저장
해당 키에 대한 (SSH 클라이언트의) 질문에 답변하기
하지만 상담원은 개인 키를 어디에도 전송하지 않습니다. 이 점을 이해해야 합니다. 일단 로드된 개인 키는 에이전트 내에 유지되며 SSH 클라이언트가 볼 수 없습니다. 클라이언트가 키에 액세스하려면 "상담원님! 도움이 필요해요. 저 대신 키 관련 작업을 수행해 주세요."라고 말합니다. 에이전트는 그림 6-4에서와 같이 순종하여 결과를 클라이언트에 보냅니다.

그림 6-4. SSH 에이전트가 클라이언트와 함께 작동하는 방식
예를 들어 ssh는 인증자에 서명해야 하는 경우 인증자 데이터와 사용할 키 표시가 포함된 서명 요청을 에이전트에게 보냅니다. 에이전트는 자체적으로 암호화 작업을 수행하여 서명을 반환합니다.
이러한 방식으로 SSH 클라이언트는 개인 키를 보지 않고 에이전트를 사용합니다. 이 기술은 클라이언트에게 키를 전달하는 것보다 더 안전합니다. 개인 키가 저장되거나 전송되는 장소가 적을수록 도용하기가 더 어렵습니다.
6.3.2 상담원 시작하기
로그인 계정에서 상담원을 호출하는 방법에는 두 가지가 있습니다:
현재 로그인 셸을 사용하는 단일 셸 방법
일부 환경 변수의 상속을 용이하게 하기 위해 서브셸을 포크하는 서브셸 메서드입니다.
경고
"뻔하지만" 잘못된 명령으로 상담원을 호출하지 마세요:
$ ssh-agent ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access