에이전트가 작동하더라도 특정 환경 변수가 설정되지 않은 경우 에이전트에 대한 참조가 없습니다. 더욱이 에이전트, 변수가 모두 괜찮더라도 ID는 에이전트에게 자동으로 전송되지 않습니다 ssh-askpass
. 이는 X 세션에서만 작동 하는 작업입니다 .
bash를 사용하는 경우 ~/.bash_profile
다음 내용으로 파일 을 작성하십시오 .
# File: ~/.bash_profile
# source ~/.profile, if available
if [[ -r ~/.profile ]]; then
. ~/.profile
fi
# start agent and set environment variables, if needed
agent_started=0
if ! env | grep -q SSH_AGENT_PID >/dev/null; then
echo "Starting ssh agent"
eval $(ssh-agent -s)
agent_started=1
fi
# ssh become a function, adding identity to agent when needed
ssh() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/ssh "$@"
}
export -f ssh
# another example: git
git() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/git "$@"
}
export -f git
~/.ssh/id_dsa
필요에 따라 파일 이름을 수정 하고이 줄을~/.bash_logout
# stuff to add at end of ~/.bash_logout
if ((agent_started)); then
echo "Killing ssh agent"
ssh-agent -k
fi
마지막 참고 사항 :이 경우 그놈 세션을 방해하지 않습니다.이 경우에만 ~/.profile
소스가 제공 되므로 ssh-askpass
암호 문구를 요청하여로 전송 하는 그래픽 인터페이스의 이점을 얻을 수 있습니다 ssh-agent
.
ssh-agent
이 실행 중인지 확인하십시오 .ps -ef | grep '[s]sh-agent'