SSH 세션이 중단 된 경우 어떻게해야합니까?


109

때로는 터미널의 ssh 세션이 중단됩니다. ssh 세션을 종료하고 다시 연결하려면 어떻게해야합니까?

답변:


195

~.줄의 시작 부분에 물결표, 마침표를 입력하십시오 . 즉, 눌러 Enter, 다음 ~, 다음 .. (일부 언어에서는 문자 를 입력하기 위해 Shift또는 Alt을 눌러야 할 수도 있습니다 ~.)

일반적으로 ~문자는 줄의 시작 부분에 입력 할 때 SSH 세션에서 이스케이프 문자입니다. escape 명령 목록을 보려면 Enterthen ~?을 입력 하십시오. 가장 일반적인 것은

  • ~. 연결을 종료
  • ~^Z( +를 누른 ~다음 Ctrl+ Z)를 눌러 연결을 일시 중단하고 명령을 로컬로 입력 fg하십시오 (SSH 세션으로 돌아가려면 명령 을 실행하십시오 )

줄의 시작 부분에 물결표를 원하면을 ~두 번 누릅니다 .


7

ssh 세션을 종료하기 exit위해 프롬프트에서 입력 하면됩니다.

Shift+ `+를 입력하십시오.


2
더 이상 사용자 입력을 받아들이지 않고 문자 그대로 정지됩니다. 우분투에는 이러한 경우에 사용할 수있는 세션을 종료하는 키보드 조합이 있습니다. 잠시 후 세션이 진술을 종료 broken-pipe하지만 오히려 기다리지 않습니다.
Kit Sunde

1
@ 키트 답변을 수정했습니다. 미안합니다. 나는 당신이 완전히 멈추는 SSH 세션을 의미한다는 것을 몰랐습니다.
daviesgeek

일반적으로 시간이 초과 될 때까지 기다립니다. 이러한 명령에 대해 알고 있음에도 불구하고 항상이 명령을 사용하여 쉘을 다시 가져 오는 프로세스를 촉진 할 수 있다는 점을 잊었습니다. 참고 @Gilles도 대답합니다. Enter / Return을 한 번 눌러야 할 수도 있습니다 ~. . SSH 맨 페이지 (약 절반 이상)에서 더 많은 내용을 배우려면 다음 ~?을 입력 하여 활성 / 연결된 SSH 세션에 다시 입력하십시오. 전에 한 번 Enter 키를 누르십시오.
Jason Salaz

7

세션이 중단되고 프롬프트가 더 이상 응답하지 않으면 터미널 인스턴스를 종료하고 ssh 세션이 하나 인 해당 인스턴스와 관련된 모든 하위 프로세스를 세션과 함께 처리해야합니다.

새 터미널 인스턴스를 열 수 있지만 철저히 원한다면 프로세스 목록에서 ssh 세션을 찾아서 명령 행을 통해 종료하십시오.

> ps -ef  |grep ssh
501  1332   142   0 20Dec11 ??         0:01.33 /usr/bin/ssh-agent -l
501 57172 57150   0  1:58pm ttys000    0:00.01 grep ssh
501 57139 57133   0  1:57pm ttys002    0:00.03 ssh -i/Users/ian/code/ec2-keys/id_rsa-gsg-keypair someuser@someinstance.amazonaws.com

> kill 57139

그래도 작동하지 않으면 다음을 시도하십시오.

> kill -9 57139

ssh-agent프로세스를 종료 하지 마십시오 .

또는 활동 모니터를 열고 세션을 검색하고 세션에 대한 종료 단추를 누르십시오.

ssh 세션에 대한 활동 모니터 필터링


+1, 이것이 내가하는 일입니다. 종종 세션을 실행 한 상태에서 실수로 연결이 끊어 지거나 랩톱을 잠자 게하면 ssh가 중지됩니다. 새 콘솔 탭을 열고 ssh 프로세스의 PID를 종료 (또는 ssh 탭을 닫고 새 콘솔을 열 때)
1/2.

Mac에서 키보드 단축키를 사용하면 프로세스를 지치지 않고 작동합니까?
Rafael Bugajewski

1
사용하십시오 ~.. 위 참조.
Snowcrash

0

~. 완전히 멈춘 것처럼 보이지만 ssh 연결을 중지하고 다시 시작할 수 있지만 키보드에서 Alt + ~를 누른 다음 스페이스를 누른 다음을 눌러야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.