it-swarm-ko.tech

버려진 ssh 세션에 연결하거나 볼 수 있습니까?

회사 네트워크의 모든 호스트에서 ssh 할 수있는 redhat의 가상 인스턴스가 실행 중입니다. 연결을 끊었을 수도 있고 아닐 수도있는 일부 스크립트를 실행하는 동안 내 ssh 세션이 삭제되었습니다. who 명령은 여전히 ​​로컬로 끊어진 연결을 나열합니다. ssh와 (과) 다시 연결하면 완전히 새로운 세션이 시작됩니다. 원래 세션에 연결하는 방법이 있습니까? 내가 그것을 죽일 수 없다면? 나는 루트 및 물리적 액세스 권한이 있습니다. 원래 세션에서 화면을 사용하지 않았습니다.

14
jms

리모컨에서 screen 을 사용하고 ssh를 다시 사용하면 해당 화면 인스턴스에 다시 연결합니다.

그러나 아니, 당신은 자체적으로 ssh 세션에 다시 연결할 수 없으며 screen (또는 그것을 촉진하기 위해 그것과 비슷한 것)을 사용해야합니다.

적어도 하나의 다른 옵션과 옵션 (tmux)과 화면의 차이점에 대해서는 이 질문 을 참조하십시오. 그 질문에 대한 답을 읽은 후에 ... 실제로 tmux 가 더 좋습니다

그렇습니다. 프로세스를 포크하기 위해 kill 프로세스를 중지시킬 수 있습니다. skill를 사용하여 이름으로 사용자를 죽일 수도 있지만 해당 사용자가 루트인지 의심됩니다. 그것은 할 수없는 것들을 죽일 수 있습니다.

응답이 몇 번 업데이트되었습니다

11
xenoterracide

기본적으로 포기 된 ssh 세션에 다시 연결할 수 없습니다. 그러나 ssh 세션 내에서 프로세스를 설정할 수 있으며 새 ssh 세션을 다시 설정 한 후 다시 연결할 수 있습니다.

사용하려는 것은 화면 또는 byobu라는 화면 주위의 사용자 친화적 인 래퍼입니다.

Screen을 사용하면 동일한 ssh 세션에서 여러 가상 터미널 세션을 실행할 수 있습니다. tutorialhelp pages 를 사용할 수 있습니다.

byob 는 ctrl-a의 키 조합 대신 간단한 기능 키를 사용하여 새 화면을 쉽게 열 수있는 래퍼입니다. 또한 이름을 지정할 수있는 모든 열린 가상 터미널이있는 상태 표시 줄도 보여줍니다.

또 다른 멋진 기능은 ssh 연결이 끊긴 동안 모든 화면을 유지할 수 있다는 것입니다. ssh를 통해 다시 연결하고 byobu를 호출하면 모든 것이 이전과 같습니다.

마침내 byobu의 일부 screenshots 입니다.

4
txwikinger

언급했듯이 화면은 아마도 가장 좋은 방법 일 것입니다. 세션이 삭제 된 경우 계속 실행됩니다. 사용 가능한 세션을 보려면 'screen -list'를 입력하고 원하는 세션으로 'screen -r'을 입력하십시오. 약간의 팁으로, 전체 내용을 복사/붙여 넣기하지 않고 세션 문자열을 탭 완성 할 수 있습니다.

그러나 화면이 성 가실 수 있습니다. 내 고객의 경우 콘솔에서 쉽게 내역을 볼 수 있도록 위로 스크롤 할 수 없습니다. 예상보다 약간 다르게 작동합니다. 당신이하고 싶은 것은 당신의 장기 실행 프로세스가 죽지 않도록하는 것이라면 'Nohup'을 사용하십시오. 연결이 끊어지면 프로세스가 종료되지 않습니다. 그러나 모니터하려는 경우 proc 출력을 파일로 보내야합니다. 또한 bash 스크립트가 있다면 Nohup 앞에서 'bash'를 명시 적으로 호출해야한다고 생각합니다. 예를 들면 ...

Nohup bash ./myscript.sh> output.log 2> & 1 &

즉, Nohup은 proc을 죽이는 것을 막기 위해 스크립트에 bash 특정 항목이있는 경우 bash를 명시 적으로 호출하는 bash를 의미합니다. 오류가 발생하고 백그라운드에서 proc을 실행하려면 끝에 '&'가 표시됩니다.

3
kāgii