ssh 키 ssh-agent bash 및 ssh-add 사람이 어떻게

나는 ssh 키를 처음 사용합니다. 사람이 어떻게 설명 할 수 ssh-agent bashssh-add작품?

앞으로 내부를 이해해야합니다.



답변

에이전트 만 잠금을 해제 할 수 있도록 메모리에 열쇠를 최신 상태로 유지하는 프로그램입니다 대신에 모든 시간. ssh-agent 는 SSH 키에 대해이를 수행합니다.

ssh-agent시작 하는 일반적인 방법 은 다음과 같습니다.

  • eval `ssh-agent`– 에이전트를 백그라운드에서 실행하고 현재 쉘 인스턴스에 적절한 환경 변수를 설정합니다 .

    ( ssh-agent 는 인수없이 시작하면 셸에서 해석 할 명령을 출력합니다.)

  • exec ssh-agent bash– 현재 쉘을 대체하여 쉘 의 인스턴스를 시작합니다 bash.

    (하나 이상의 인수를 사용하면 ssh-agent 는 아무것도 출력하지 않지만 지정된 명령을 시작합니다.이 경우 bash쉘이지만 기술적으로는 아무 것도 될 수 있습니다.)

    두 번째 방법은 터미널 창을 닫을 때 자동으로 ssh-agent를 종료하기 때문에 선호되는 경우가 있습니다. 로 시작 eval하면 에이전트는 계속 실행 중이지만 액세스 할 수 없습니다.

그러나 이것은 빈 에이전트 만 시작합니다. 실제로 유용하게 만들려면 ssh-add 를 사용해야합니다. ssh-add 는 키를 잠금 해제 (일반적으로 ~/.ssh/id_*)하고 에이전트에로드하여 ssh 또는 sftp 연결에 액세스 할 수 있도록 합니다.


답변

또한 세션 시작시 일부 키를 추가 할 수 있습니다.

~/.bashrc파일을 편집 하고 다음을 추가하십시오.

ssh-add &>/dev/null || eval `ssh-agent` &>/dev/null  # start ssh-agent if not present
[ $? -eq 0 ] && {                                     # ssh-agent has started
ssh-add ~/.ssh/your_private.key1 &>/dev/null        # Load key 1
ssh-add ~/.ssh/your_private.key2 &>/dev/null        # Load key 2
}

키를 확인하십시오 ssh-add -l

현재 ssh-agent 세션을 중지 할 수 있습니다. ssh-agent -k

ssh-agent와 .bashrc에 대해 알아야 할 것은 너무 많은 키를로드하지 않습니다. ssh를 데몬에 대한 시도의 기본 개수는이 캔이 수정 된 6으로 제한됩니다 /etc/ssh/sshd_configMaxAuthTries값.