[apple] ~ / .ssh에서 개인 키를 삭제 한 후에도 ssh 키가 유지됩니다 – 왜?

나는 ssh 키 (공개 및 개인)를 생성하고 ~/.ssh/myServer/.

나는 서버에 공개 키를 추가했다. ~/.ssh/authorized_keys 파일 및 모든 것이 잘 작동합니다!

키가 작동하는 방식을 시도하고 이해하려는 노력에서이를 삭제하고 여전히 서버에 연결할 수 있다는 사실에 놀랐습니다.

내가 암호없이 연결할 수있는 이유는 무엇입니까?



답변

OS X Keychain의 멋진 세계에 오신 것을 환영합니다. ssh-agent ! man 페이지에서 :

ssh-agent는 공개 키 인증 (RSA, DSA, ECDSA)에 사용되는 개인 키를 보유하는 프로그램입니다. 그만큼
       idea는 ssh-agent가 X 세션 또는 로그인 세션의 시작에서 시작되고 다른 모든 세션은
       창 또는 프로그램은 ssh-agent 프로그램의 클라이언트로 시작됩니다. 환경 변수의 사용을 통해
       다른 에이전트에 로그인 할 때 에이전트를 찾아서 인증에 자동으로 사용할 수 있습니다.
       ssh (1)을 사용하는 기계.

개인 키가 에이전트에 캐시되었으며 세션에서 세션을 인증하기 위해 개인 키가 페치됩니다. OS X은 Keychain을 통해 “사용자 친화적”이기 때문에 자동 ssh-agent 캐싱을 수행합니다. 조금 놀랄 수도 있지만 대부분 이런 일이 발생하기 쉽습니다.

캐시 된 키의 기본 지속 시간은 영원합니다. 그것은 아마도 큰 불이행이 아닙니다. 로그 아웃 / 로그인주기 또는 재부팅시 캐싱 된 키를 플러시합니다. 또는 다음을 사용하여 현재 상담원을 강제 종료하여 강제로 플러시 할 수 있습니다.

ssh-add -D

다음을 실행하여 에이전트가 캐시 한 모든 자격 증명을 나열 할 수 있습니다.

ssh-add -l

이렇게하면 동일한 작업이 수행되지만 공개 키는 모두 표시됩니다.

ssh-add -L


답변