나는 ssh 키를 처음 사용합니다. 사람이 어떻게 설명 할 수 ssh-agent bash
및 ssh-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_config
와 MaxAuthTries
값.