개요
ssh-agent는 SSH 프라이빗 키를 안전하게 저장하고, 필요한 경우 SSH 클라이언트(ssh)에 제공하여 인증 과정을 간소화합니다. 한 번 패스프레이즈를 입력하면 에이전트가 실행되는 동안 다시 입력할 필요가 없어 편리합니다. 이는 특히 여러 SSH 연결을 자주 사용하는 환경에서 유용합니다.
주요 기능
- SSH 키 관리 및 저장
- 반복적인 패스프레이즈 입력 방지
- SSH 클라이언트와의 안전한 통신
- 세션 기반 키 유지
주요 옵션
ssh-agent는 주로 백그라운드에서 실행되며, 셸 환경 변수를 설정하여 SSH 클라이언트가 에이전트를 찾을 수 있도록 합니다.
실행 및 제어
생성된 명령어:
명령어를 조합해 보세요.
설명:
`ssh-agent` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
ssh-agent 시작 (bash/sh)
eval "$(ssh-agent -s)"
ssh-agent를 백그라운드에서 시작하고, 현재 셸 세션에 필요한 환경 변수를 설정합니다.
SSH 키 추가
ssh-add ~/.ssh/id_rsa
ssh-agent에 프라이빗 키를 추가합니다. 키에 패스프레이즈가 있다면 이때 한 번 입력합니다.
에이전트 종료
ssh-agent -k
현재 셸 세션에 연결된 ssh-agent 프로세스를 종료합니다.
키 수명 1시간으로 에이전트 시작
eval "$(ssh-agent -s -t 3600)"
에이전트에 추가되는 모든 키의 최대 수명을 1시간(3600초)으로 설정하여 시작합니다.
현재 에이전트에 로드된 키 목록 확인
ssh-add -l
ssh-agent에 현재 로드되어 있는 SSH 키의 목록을 확인합니다.
팁 & 주의사항
ssh-agent를 효과적으로 사용하고 보안을 유지하기 위한 팁입니다.
팁
- **자동 시작**: `.bashrc` 또는 `.zshrc` 파일에 `eval "$(ssh-agent -s)"`를 추가하여 셸 시작 시 자동으로 에이전트가 실행되도록 설정할 수 있습니다. 이미 실행 중인 에이전트가 있는지 확인하는 로직을 추가하는 것이 좋습니다.
- **키 목록 확인**: `ssh-add -l` 명령어를 사용하여 현재 ssh-agent에 로드된 SSH 키 목록을 확인할 수 있습니다.
- **키 제거**: `ssh-add -d ~/.ssh/id_rsa`로 특정 키를 제거하거나, `ssh-add -D`로 모든 키를 제거할 수 있습니다.
주의사항
- **에이전트 포워딩**: `ssh -A` 옵션을 사용하여 에이전트 포워딩을 할 경우, 원격 서버에서 로컬 에이전트에 접근할 수 있게 됩니다. 이는 편리하지만, 원격 서버가 손상될 경우 로컬 키가 노출될 위험이 있으므로 신뢰할 수 있는 서버에서만 사용해야 합니다.
- **에이전트 수명**: `ssh-agent -t` 옵션으로 키의 최대 수명을 설정할 수 있습니다. 보안을 위해 너무 긴 수명은 피하는 것이 좋습니다.