ssh-add는 ssh-agent에 연결할 수 없습니다

ssh-add는 ssh-agent에 연결할 수 없습니다

나는 그것이 ssh-add"프론트 엔드"라는 것을 알고 있습니다 ssh-agent.

하지만 ssh-agent내 컴퓨터에서는 이미 실행 중입니다(에서 찾을 수 있습니다 top). 입력하면 ssh-add"인증 프록시에 대한 연결을 열 수 없습니다"라는 메시지가 나타납니다.

어떻게 자세하게 의사소통을 할 수 있나요 ssh-add?ssh-agent

내 상황은

#! /bin/sh

# hello.sh

eval $(ssh-agent -s)
ssh-add

그 다음에,

bash ./hello.sh

내가 입력하는 동안

ssh-add some-new-key

터미널에서는

이 오류 메시지가 출력됩니다.

답변1

출력은 일부 ssh-agent -s환경 변수 할당입니다. SSH_AUTH_SOCK=blahblah; export SSH_AUTH_SOCK이를 실행하면 eval $(ssh-agent -s)셸은 이를 코드로 실행하고 이러한 변수는 셸에 설정됩니다. 여기에 있는 변수에는 ssh-add에이전트에 연결하는 데 필요한 정보가 포함되어 있으며 셸에서 프로세스로 상속됩니다 ssh-add.

하지만 여기에서는 hello.sh. 스크립트를 실행하는 셸은 에서 시작된 상위 수준 대화형 셸과 별도의 프로세스 hello.sh이며 변수는 "상위"로 상속되지 않습니다.

source hello.sh대신 을 사용하거나 스크립트를 . hello.sh얻으면같은 껍질, 변수가 올바르게 할당되었습니다.

그러나 여러 셸(여러 터미널 에뮬레이터, SSH 세션, screen/tmux 창 등)을 실행하는 경우 실제로는 하나만 필요합니다 ssh-agent. 변수 할당을 일부 파일에 저장한 다음 .bashrc. 하지만 정확히 무엇을 하고 있는지는 모르겠습니다.

관련 정보