"ssh-agent dwm"은 .xinitrc에서 시작하지만 환경 변수가 설정되지 않았습니다.

"ssh-agent dwm"은 .xinitrc에서 시작하지만 환경 변수가 설정되지 않았습니다.

.xinitrc다음 줄이 포함된 파일을 얻습니다 .

# it will start my window manager
ssh-agent dwm

그 후 프로세스를 얻었지만 터미널에서 실행했을 때 ssh-agent및 같은 환경 변수가 존재하지 않았습니다. 어떤 아이디어가 있나요?$SSH_AGENT_PID$SSH_AUTH_SOCKdwm

프로세스가 하나만 있었으면 좋겠습니다 ssh-agent. 각 호출은 ssh-add시작된 에이전트에 연결되어야 합니다 dwm.

답변1

ssh-agent연결하는 데 필요한 환경 변수를 출력합니다. 이를 eval호출하여 환경에 즉시 로드합니다.

ssh-agent나는 이것을 스스로 할 수 없습니까?

Unix에서 프로세스는 자신의 환경 변수만 수정하고 이를 하위 프로세스에 전달할 수 있습니다. 시스템에서 허용하지 않기 때문에 상위 프로세스의 환경을 수정할 수 없습니다. 이는 매우 기본적인 보안 설계입니다.

관련 독서이것.

따라서 `.xinitrc를 다음과 같이 남겨두십시오:

eval $(ssh-agent) &
exec dwm

답변2

dwm .xinitrc에서 호출하려면 exec를 사용해야 합니다 . 다음은 dwm 프록시를 설정합니다.

exec ssh-agent dwm

startx를 실행한 후 터미널을 열면 에이전트가 로드된 것으로 표시됩니다.

관련 정보