내 서버에서 ssh를 하나로 ssh 할 때 gnu 화면을 자동으로 시작합니다. 완료되면 분리해야합니다. 그런 다음 종료하여 ssh를 종료하십시오. 즉, 특정 시점에 서버에 다시 ssh를 입력하면 중단 한 부분부터 계속할 수 있습니다.
Ssh를 분리하고 삭제할 별칭 (예 : 화면 내에서)을 만들 수 있습니까?
댓글
답변
자동 시작 방법 원격 호스트에 로그인 할 때 screen
시작 (로컬 시스템에서 실행 됨) :
ssh -t user@host screen
화면에서 원격 호스트에서 세션을 분리하고 로그 아웃합니다 (제어 소켓을 사용하는 영구 연결을 사용하지 않는 경우 (예 : ControlMaster
설정을 ControlPersist
in ~/.ssh/config
)) :
screen -d
나중에 로그인하려면 다시 연결 :
ssh -t user@host screen -r
iv id = “adb6a9fb48″과 함께 -t
를 사용해야합니다. >
, 가상 터미널 할당을 강제 실행하면 이러한 방식으로 screen
가 시작됩니다.
원격 호스트의 별칭은 f입니다. 또는 screen -d
, 아마도 detach="screen -d"
또는 이와 유사한 것입니다.
로컬 호스트에서는 ~/.ssh/config
파일 내용
Host *-screen RequestTTY force RemoteCommand screen -d -R Host myhost myhost-screen HostName myhost.somedomain.example.com User myname
그런 다음 사용할 때마다
ssh myhost-screen
screen
세션이 지정된 호스트에서 생성 (또는 다시 연결)되는 반면
ssh myhost
screen
를 사용하지 않습니다.
참고 : RemoteCommand
는 OpenSSH 7.6 (2017)에 추가되었습니다. -10-03).
tmux
:
-
tmux new-session -A -s "%n"
<screen -d -R
대신~/.ssh/config
의 / div>. - 접두어 사용 d 또는
tmux detach-client
또는tmux detach
를 분리합니다.
댓글
- 좋습니다. 집에서 이것은 잘 작동합니다. ' 의사 -tty 할당 강제 '에 대해 몰랐습니다. 나는 이것을 테스트했고 작동했습니다.
Answer
화면을 호출하거나 생성하기 위해 화면 명령을 실행할 때 , 후에 부모 셸을 죽일 수 있으므로 ssh 연결을 종료합니다.
부모가 bash 인 경우 부모 프로세스를 종료하는 예제
kill $( ps -ax -o pid,ppid,args | grep "^$$ " | grep bash | awk "{print $2} " )
Comments
- Thx. 실행할 앱을 지정할 수없는 곳 (예 : online ssh app.shellngn.com )에서 ssh를 입력하고 코드 줄을 다음과 같이 수정합니다. SSH 세션을 찾으면 작동합니다.
screen