너무 많은 프로세스를 생성하지 않고 비밀번호를 사용하는 ssh-agent

StackOverflow https://stackoverflow.com/questions/102382

  •  01-07-2019
  •  | 
  •  

문제

Linux에서 비밀번호로 보호된 키와 함께 ssh-agent를 사용합니다.특정 컴퓨터에 로그인할 때마다 다음을 수행합니다.

eval `ssh-agent` && ssh-add

이것은 충분히 잘 작동하지만 로그인하여 이 작업을 수행할 때마다 또 다른 ssh-agent를 생성합니다.가끔씩은 내가 할게 killall ssh-agent 그들을 거두려고.여러 세션에서 동일한 ssh-agent 프로세스를 재사용하는 간단한 방법이 있습니까?

도움이 되었습니까?

해결책

키체인을 살펴보세요.자신과 비슷한 상황에 처한 사람들이 쓴 글입니다.열쇠고리

다른 팁

당신은 이 기계를 얼마나 통제할 수 있나요?한 가지 대답은 ssh-agent를 데몬 프로세스로 실행하는 것입니다.다른 옵션은 다음에 설명되어 있습니다. 이 웹페이지, 기본적으로 에이전트가 주변에 있는지 확인하고 그렇지 않은 경우 실행하는 테스트입니다.

여기에 아이디어 중 하나를 재현하려면 다음을 수행하십시오.

SSH_ENV="$HOME/.ssh/environment"

function start_agent {
     echo "Initialising new SSH agent..."
     /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
     echo succeeded
     chmod 600 "${SSH_ENV}"
     . "${SSH_ENV}" > /dev/null
     /usr/bin/ssh-add;
}

# Source SSH settings, if applicable

if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     #ps ${SSH_AGENT_PID} doesn’t work under cywgin
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
         start_agent;
     }
else
     start_agent;
fi 

넌 할 수있어:

ssh-agent $SHELL

이로 인해 쉘이 종료될 때 ssh-agent가 종료됩니다.여전히 세션 간에 공유되지는 않지만 공유하면 최소한 사라집니다.

사용하는 셸에 따라 로그인 셸과 일반 새 셸에 대해 서로 다른 프로필을 설정할 수 있습니다.일반적으로 로그인 쉘에 대해 ssh-agent를 시작하려고 하지만 모든 하위 쉘에 대해 시작하지는 않습니다.Bash에서 이러한 파일은 다음과 같습니다. .bashrc 그리고 .bash_login, 예를 들어.

요즘 대부분의 데스크탑 리눅스는 ssh-agent를 실행합니다.ssh-add를 사용하여 키를 추가한 다음 다음을 실행하여 키를 원격 SSH 세션으로 전달하면 됩니다.

ssh -A
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top