내가 미끼 (PuTTy SSH 키 에이전트)를 실행하는 노트북이 있습니다. 시스템에 ssh하고 화면을 시작하면 ssh 키 전달이 제대로 작동합니다.
그러나 화면 세션에서 연결을 끊고 로그 오프했다가 나중에 다시 연결하면 키 전달이 더 이상 작동하지 않습니다. 나는 이전의 것보다 새로운 포워딩 세션을 위해 다른 포팅에 키 포워딩이 설정되어 있기 때문에 이것을 생각하고있다.
개별 화면 창에 에이전트 포워딩에 다시 연결되도록 가르쳐서 내 키를 다시 전달할 수 있습니까?
답변
내 솔루션은 좀 더 강력합니다. 이것을 원격 측의 .bash_profile에 넣으십시오.
if [ -z "${STY}" -a -t 0 ]; then
reattach () {
if [ -n "${SSH_AUTH_SOCK}" ]; then
ln -snf "${SSH_AUTH_SOCK}" "${HOME}/.ssh/agent-screen"
SSH_AUTH_SOCK="${HOME}/.ssh/agent-screen" export SSH_AUTH_SOCK
fi
exec screen -A -D -RR ${1:+"$@"}
}
fi
그런 다음 reattach
대신에 screen
. 이것은 다음을 사용하여 수행 할 수 있습니다. command screen -A ${1:+"$@"}
‘재 부착’대신 ‘화면’을 선택하십시오.
@David Mackintosh의 대답에서 ‘별칭’솔루션을 사용할 때의 문제점은 화면에서 실행중인 프로세스가 이제 원격 측에서 동일한 SSH_AUTH_SOCK 값을 갖게된다는 것입니다. 다음 장면을 생각해보십시오.
- 로컬 : SSH 에이전트 시작하기
SSH_AUTH_SOCK
값 - 로컬 : SSH를 원격으로 설정하고 새로운 설정
SSH_AUTH_SOCK
리모컨의 가치 - 원격 : 시작
screen
또는tmux
, SSH_AUTH_SOCK 사용 - 원격 : SSH_AUTH_SOCK을 상속 한 쉘 생성
screen
- 원격 : 화면에서 분리하고 로그 아웃합니다.
- 로컬 : SSH에서 원격으로, 설정 새로운
SSH_AUTH_SOCK
리모컨의 가치 - 원격 : 화면 세션에 다시 연결합니다. 늙은
SSH_AUTH_SOCK
값
트릭은 새로운 값을 사용하기 위해 화면 내에서 실행되는 프로세스를 가져 오는 것입니다. 당신은 현재의 심볼릭 링크를 repointing하여 할 수 있습니다 SSH_AUTH_SOCK
전화 할 때마다 screen
(신규 또는 다시 연결된 세션 용).
답변
이것은 실제로 중복의 : 바스 티언 호스트에서 화면 또는 tmux를 사용하는 ssh-agent 키 타임 아웃
해결책:
-
.bash_profile에 다음을 추가하십시오 :
echo “export SSH_AUTH_SOCK = $ SSH_AUTH_SOCK”& gt; ~ / .ssh / auth_sock
-
.bashrc에 다음을 추가하십시오 :
별칭 ssh = “소스 ~ / .ssh / auth_sock; ssh”
이것은 나를 위해 지금까지 작동하는 것 같습니다.