ssh-agent의 출력을 평가하는 이유는 무엇입니까?

ssh-agent의 출력을 평가하는 이유는 무엇입니까?

달리기 위해ssh-agent나는 다음을 사용해야 한다:

eval $(ssh-agent)

eval출력이 필요한 이유는 무엇입니까 ssh-agent? 왜 실행할 수 없나요?

답변1

ssh-agent연결하는 데 필요한 환경 변수를 출력합니다.

shadur@proteus:~$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-492P67qzMeGA/agent.7948; export SSH_AUTH_SOCK;
SSH_AGENT_PID=7949; export SSH_AGENT_PID;
echo Agent pid 7949;
shadur@proteus:~$ 

호출하면 eval이러한 변수를 환경에 즉시 로드할 수 있습니다.

왜 당신이 이것을 스스로 할 수 없는지에 대해서는 ssh-agent… 이 단어의 선택에 주목하십시오. "하지 않을 것"이 아니라 "할 수 없다Unix에서 프로세스는 자신의 환경 변수만 수정하고 이를 하위 프로세스에 전달할 수 있습니다.할 수 없다시스템에서 허용하지 않으므로 상위 프로세스의 환경을 수정합니다. 이는 매우 기본적인 보안 설계입니다.

eval로그인 셸, 창 관리자 또는 SSH 환경 변수 설정이 필요한 기타 항목을 사용하여 ssh-agent utility이 문제를 해결할 수 있습니다. utility이는 지침에도 언급되어 있습니다.

관련 정보