시작하기 전에 몇 가지 사항을 명확히하겠습니다.
- macOS를 사용하면 개인 키 암호 문구 를 macOS 키 체인에 저장할 수 있습니다 .
- ssh-agent (macOS 또는 시스템)는 해독 된 개인 키 를 메모리에 보관합니다 .
질문에 답하기 위해서는 구별이 중요합니다.
- ssh-agent 또는 Keychain Access의 두 가지 옵션이있는 것 같습니다.
정확히. 위의 설명을 참조하십시오. 에서 UseKeychain yes
지시문 을 사용하는 경우 소켓에 ~/.ssh/config
연결하는 모든 프로그램 은 암호 문구가 개인 키의 암호를 해독하기 위해 키 체인에 연결할 ssh-agent
수 ssh-agent
있습니다. 지시문 도 사용하는 경우 AddKeysToAgent yes
나중에 사용할 수 있도록 해독 된 키가 에이전트에 저장됩니다. 또 다른 관련 질문 을 볼 수 있습니다.
... 비밀번호 문구를 임시로 저장하는 편의가 필요한 경우 표준은 무엇입니까?
macOS가 암호를 일시적으로 저장하도록 할 수있는 방법이 없습니다 . 그러나 거의 동일한 효과에 대해 부분적으로 만족스러운 솔루션이있을 수 있습니다 (아래 질문 3에 대한 답변 참조).
- Keychain Access에서 기본 개인 키의 암호를 어떻게 식별하고 지울 수 있습니까? 명명되지 않은 개인 키가 표시되지만 저장된 SSH 키인지 확인하지 않고 삭제하고 싶지 않습니다.
Mac에서 Keychain Access를 열고를 검색 ssh
하면 ssh 키 암호 문구가 표시되지 않을 수 있습니다. macOS Sierra (10.12)부터 Apple ssh
은 저장된 키 체인 키를 이동했습니다 . 이를 보려면 "보기 >> 보이지 않는 항목 표시" 를 선택하면 ssh 키 비밀번호 문구 항목이 표시됩니다.
다른 RSA (또는 DSA) 키인 것으로 보이는 "이름이없는 개인 키"일 가능성이 있습니다.
- 개인 키 암호를 정기적으로 지우려면 가장 좋은 방법은 무엇입니까? 나는
ssh-add -D
cron 작업에서 사용할 수 있습니다 .
ssh-add -D
크론 작업을 할 수는 있지만 원하는 작업을 수행 할 수는 있지만 키 체인 에서 암호 문구 를 제거하지는 않습니다 . 암호 해독 된ssh-agent
모든 개인 키 실행 에 대한 메모리 만 지 웁니다 . 당신이있는 경우 귀하의 설정에, 행복하게 다시는 필요한 다음 번 (질문 1 답 위 참조) 키를 다시 해독됩니다.UseKeychain yes
ssh-agent
암호 해독 된 키를 항상 사용할 수 없도록 함축하려는 욕구를 충족시키는 한 가지 대안은 다음 UseKeychain
과 AddKeysToAgent
같이 및를 모두 끄는 것 입니다.
Host *
UseKeychain no
AddKeysToAgent no
다음 ssh-agent
과 같이 -t <lifetime>
옵션을 사용하여 수명이 제한된 러닝에 키를 수동으로 추가하십시오 ssh-add
.
ssh-add -t 4h ~/.ssh/id_rsa
그러면 수명 기간이 4 시간 인 에이전트에 (기본) RSA 키가 추가됩니다. 4 시간이 지나면 키가 자동으로 제거됩니다.
내가 아는 한, 사용자 ~/.ssh/config
에게 에이전트에 추가 된 키의 기본 수명을 지정 하라는 지시문이 없으며 시스템에 방법이 없습니다 sshd_config
. 그러나 macOS가 옵션을 사용하여 기본 수명으로 에이전트를 시작하도록 지시하는 방법 이있을 수 있습니다 -t <lifetime>
. 대담한 경우에는 시작 에이전트 plist 파일이에 저장됩니다 /System/Library/LaunchAgents/com.openssh.ssh-agent.plist
.
잠자고 있는 또 다른 오래된, 아마도 관련있는 접근 방식은 키 체인을 잠급니다.