`ssh-agent -k`가 ssh-agent(macOS)를 종료하지 않는 이유 또는 `SSH_AGENT_PID`가 설정되지 않은 이유는 무엇입니까?

`ssh-agent -k`가 ssh-agent(macOS)를 종료하지 않는 이유 또는 `SSH_AGENT_PID`가 설정되지 않은 이유는 무엇입니까?

갑자기 발생하는 단기 SSH 연결 문제를 해결하려고 합니다. 이러한 연결은 내 Mac(MBP, Catalina 10.15.6 zsh)에서 일부 Linux로 이루어집니다."가전 제품"내 네트워크에 존재하는 것 - 특히라즈베리 파이. client_loop: send disconnect: Broken pipe연결이 종료된 후 터미널에 메시지를 남깁니다 .

하지만:관련이 있는 경우에만 배경으로 제공됩니다.내 직접적인 질문:

ssh-agent -k왜 죽이지 말라는 명령이 나오는 걸까요 ssh-agent?

SSH_AGENT_PID환경 변수가 설정되지 않았기 때문에 실패한 것 같습니다 . Mac 터미널 앱에 표시된 내용을 바탕으로 추측합니다.

1. 목록SSH 관련 프로세스:

% pgrep -f ssh       
2138
75076
75942
75943
75944
% ps 2138     
  PID   TT  STAT      TIME COMMAND
 2138   ??  S      0:00.26 /usr/bin/ssh-agent -l

PID 2138는 이고 ssh-agent, 다른 PID는 sshRaspberry 또는 Ubuntu 상자(모두 Linux)에 대한 활성 연결입니다.

2. ssh-agentIAW를 죽인다 man ssh-agent:

에서 man ssh-agent:

ssh-agent [-c | -s] -k
-k 현재 에이전트를 종료합니다(SSH_AGENT_PID 환경 변수로 지정).

% ssh-agent -k 
SSH_AGENT_PID not set, cannot kill agent  
% sudo ssh-agent -k  
SSH_AGENT_PID not set, cannot kill agent

% echo $SSH_AGENT_PID

% 

, 또는 을 ssh-agent사용하여 죽일 수 있으므로kill 2138pkill ssh-agent~인 것 같다어쩌면 대답은Apple 버전은 ssh-agent환경 변수를 제공하지 않습니다.SSH_AGENT_PID. 그러나 이것이 답이라면 또 다른 질문이 제기됩니다.환경 변수를 할당하지 않는 타당한 이유가 있습니까 SSH_AGENT_PID?

또한 참고하시기 바랍니다관련 질문. 그러나 이 질문의 OP는 그의 SSH 클라이언트 호스트가 macOS임을 나타내지 않았습니다. SSH_AGENT_PID아직 정해지지 않았지만 어떻게 ssh-agent시작 해야 할지 고민만 하는 것 같다 ”고 말했다 . 제 경우(macOS)에는 ssh-agentSSH 연결이 시작될 때 시작됩니다. "유사한 질문" 제안 상자에서 다른 Q&A를 찾았습니다. 그 중 몇 개를 읽어 보았지만 그 중 어느 것도 나와 동일한 것 같지 않습니다.

답변1

바라보다이 답변.

~에서man 페이지:

ssh-agent가 시작되면 환경 변수를 설정하는 데 필요한 쉘 명령을 인쇄하며, 이는 호출 쉘에서 평가될 수 있습니다.eval `ssh-agent -s`

그래서 ssh-agent그냥 실행프로그램환경 변수를 설정하는 명령은 실제로는 아닙니다.세트.eval

답변2

우분투 18.04에서도 같은 문제가 발생했습니다. Get ID를 사용한 후 pidof ssh-agent다음이 나에게 효과적이었습니다.

export SSH_AGENT_PID=<pid>
eval `ssh-agent -k`

관련 정보