ssh-agent.service가 실행 중인데 ssh-add를 사용할 때 에이전트에 연결하는 중에 오류가 발생하는 이유는 무엇입니까?

ssh-agent.service가 실행 중인데 ssh-add를 사용할 때 에이전트에 연결하는 중에 오류가 발생하는 이유는 무엇입니까?

ssh-agent 서비스가 사용자에 대해 활성화되어 있으며 오류 없이 실행 중입니다. (상태는 활성입니다).
하지만 ssh를 사용하려고 하면 오류가 발생합니다 Could not open a connection to your authentication agent.. 왜 이런 일이 발생하는지 이해하지 못합니다. 이전에는 ssh가 즉시 작동했고 내 키를 통해 서버에 연결할 수 있었지만 지금은 연결하고 싶지만 오류가 발생하고 Permission denied (public key)추가하여 시도했는데 ssh-add이것을 얻었습니다.
여기에 이미지 설명을 입력하세요.

문제를 해결하는 방법을 검색하고 해결책을 찾았 eval $(ssh-agent -s)지만 작동 bash하고 사용 중이며 fish환경 변수를 수동으로 설정해야하고 매번 수행해야한다는 것을 검색했습니다. 예전에는 작동했습니다. 자체적으로 실행하는 방법을 검색하고 ssh-agent 데몬을 활성화해야 한다고 검색했지만 활성화했는데 작동하지만 bash를 실행해도 오류가 남아 있습니다. 동일한 오류입니다.

시스템: 아치 리눅스

답변1

문제를 해결하는 방법을 검색하여 eval $(ssh-agent -s) 솔루션을 찾았지만 bash에서만 작동합니다. Fish를 사용하고 있습니다.

여기에는 적용되지 않습니다. 여기에는 하나를 시작하는 명령이 있습니다.새로운ssh-agent의 인스턴스(그리고 더 중요한 것은 ssh-agent가 시작될 때 출력하는 환경 변수를 설정한다는 것)입니다.

명령이 올바르게 실행되면 구문 이전에 명령의 의미에 중점을 둡니다.물건그런 다음 해당 구문을 모든 쉘에 적용할 수 있습니다.

거기에서 검색해보니 환경 변수를 수동으로 설정해야 하고 매번 그렇게 해야 한다는 걸 알았습니다.

정말 매번 이렇게 해야 합니다.

Arch Linux에서 제공하는 .service에는 ssh-agent가 전체 사용자에 대한 환경 변수를 설정하도록 허용하는 옵션이 없습니다(실제로 패키지 관리자가 생각하는 것과 반대 방향으로 작동하는 PassEnvironment=가 있으므로 이 경우에는 아무것도 하지 않음), systemd에는 이를 허용하는 일반적인 메커니즘조차 없습니다.

따라서 이 서비스를 사용하는 유일한 방법은 로그인 스크립트(예: ~/.bashrc 또는 ~/.profile을 통해)를 통해 SSH_AUTH_SOCK를 수동으로 설정하는 것입니다.

그건 효과가 있었어

GNOME Keyring(로그인 시 ssh-agent 환경 변수를 자동으로 설정할 수 있는 PAM 모듈이 있음) 또는 pam_ssh(다시)와 같은 다른 것을 사용하고 있을 수 있습니다.

답변2

기본적으로 두 가지 옵션이 있습니다.

  1. -c플래그 사용 :eval (ssh-agent -c)
  2. keychain대신 사용

원천

관련 정보