내 솔루션은 좀 더 강력합니다. 이것을 원격 측의 .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
(신규 또는 다시 연결된 세션 용).