내 서버에서 ssh를 하나로 ssh 할 때 gnu 화면을 자동으로 시작합니다. 완료되면 분리해야합니다. 그런 다음 종료하여 ssh를 종료하십시오. 즉, 특정 시점에 서버에 다시 ssh를 입력하면 중단 한 부분부터 계속할 수 있습니다.

Ssh를 분리하고 삭제할 별칭 (예 : 화면 내에서)을 만들 수 있습니까?

댓글

  • screen

답변

자동 시작 방법 원격 호스트에 로그인 할 때 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 세션을 찾으면 작동합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다