SSH 연결을 종료하려면 어떻게합니까?


245

SSH를 통해 서버에 연결하여 다음과 같은 명령을 사용하여 소켓 서버에 메시지를 보냅니다.

ssh 181.169.1.2 -p 5566

연결이 완료된 후 메시지를 작성하여 보내면 텍스트 모드를 종료 할 수 없습니다. 더 많은 텍스트를 입력 할 수 있습니다.

명령 모드로 돌아갈 수있는 명령 또는 키 조합이 있습니까?

답변:


156

SSH 연결을 종료하려면 어떻게합니까?

두 가지 방법:

  • 로 예 쉘 세션 종료 exit다음을 Enter, 또는 Ctrl- d일반적으로 당신이 종료 할 수 있습니다 ssh, 일반적으로 세션을
  • 연결 상태가 좋지 않고 셸이 응답하지 않는 경우 Enter키를 누른 다음 type ~.and ssh를 즉시 닫고 명령 프롬프트로 돌아갑니다.

첫 번째 옵션은 직관적이어야하지만 후자의 옵션은 어떻게 알 수 있습니까?

맨 페이지를주의 깊게 읽음으로써이 정보를 배울 수 있습니다.

$ man ssh

이스케이프 문자에 대한 다음 섹션이 있는 SSH 문서를 제공 합니다.

ESCAPE CHARACTERS
     When a pseudo-terminal has been requested, ssh supports a number of
     functions through the use of an escape character.

     A single tilde character can be sent as ~~ or by following the tilde by
     a character other than those described below.  The escape character
     must always follow a newline to be interpreted as special.  The escape
     character can be changed in configuration files using the EscapeChar
     configuration directive or on the command line by the -e option.

     The supported escapes (assuming the default ‘~’) are:

     ~.      Disconnect.

     ~^Z     Background ssh.

     ~#      List forwarded connections.

     ~&      Background ssh at logout when waiting for forwarded connection
             / X11 sessions to terminate.

     ~?      Display a list of escape characters.

     ~B      Send a BREAK to the remote system (only useful if the peer sup‐
             ports it).

     ~C      Open command line.  Currently this allows the addition of port
             forwardings using the -L, -R and -D options (see above).  It
             also allows the cancellation of existing port-forwardings with
             -KL[bind_address:]port for local, -KR[bind_address:]port for
             remote and -KD[bind_address:]port for dynamic port-forwardings.
             !command allows the user to execute a local command if the
             PermitLocalCommand option is enabled in ssh_config(5).  Basic
             help is available, using the -h option.

     ~R      Request rekeying of the connection (only useful if the peer
             supports it).

     ~V      Decrease the verbosity (LogLevel) when errors are being written
             to stderr.

     ~v      Increase the verbosity (LogLevel) when errors are being written
             to stderr.

나는 "우리가 이것을 어떻게 아는가"섹션이 특히 도움이되지 않는다는 것을 알 수있다. 왜냐하면 그것은 내가 "남자 ssh"라고 특별히 직관적으로 찾지 못할 때, 어떤 종류의 찾기 쉬운 해결책이 있다는 것을 암시하기 때문이다. "연결을 끊는 방법을 찾으십시오. 예를 들어 "종료"를 어떻게 찾습니까? 가능하면 맨 페이지를 다시 확인하는 것이 좋다는 데 동의합니다.
Alexander Pritchard

@AlexanderPritchard 나는 우리가 여기서하고있는 일을보다 신중하게 설명하기 위해 대답을 업데이트했습니다. 매뉴얼 페이지를 이해하기 어려우면 관리자에게 문제를 제기하거나 더 나은 방법으로 개선 할 수있는 풀 요청을 제출하십시오.
Aaron Hall

1
이론적으로는 좋지만 실제로는 많은 사람들이 원하는 정보를 찾는 방법을 아는 것만으로도 사람들이 가지고 있지 않은 상황을 가정하기 때문에 이러한 명령을 탐색하는 방법을 알아 내기 위해 고심하고 있습니다. 유지 보수 담당자와 문제를 제기하고 개선 된 끌어 오기 요청을 제출하는 것은 그 이상입니다. 나는 매뉴얼 페이지가 유용하다고 주장하지는 않지만, 일부가 그것들을 보이는 것처럼 결정적으로 유용하다면 스택 교환을 사용하지 않을 것입니다. 나는 당신의 대답이 훌륭하다고 생각하고 사람들이 매뉴얼 페이지를 확인해야한다고 생각하지만, 모두 유용하지는 않습니다.
Alexander Pritchard

6
"일부 사람들이 생각하는 것처럼 결정적으로 유용하다면 Stack Exchange를 사용하지 않을 것입니다." 동의합니다. 그래서 좋은 답변을 쓰려고 노력합니다. 참조 소스를 인용하고 인용하는 것은 다른 사람이 이미 그 소스를 읽지 않은 것에 대해 멍청하거나 기분 나쁘게 만들지 않아야하며, 그렇지 않으면 사실을 입증 할 수있는 주장이 무엇인지에 대한 추가 증거를 제공하고 사용자에게 더 많은 정보를 제공합니다. 관련 정보가 저장 될 수 있습니다. 의미 적으로 올바른 일을하고 있으며 작동한다는 것을 알고 싶습니다.
Aaron Hall

278

짧은 답변 : 유형 exit

그래도 작동하지 않으면 ...

SSH 이스케이프 문자 및 연결 끊기 순서

대부분의 SSH 구현은 텔넷 Ctrl-]조합 과 유사한 대화식 세션의 이스케이프 문자를 구현합니다 . 기본 SSH 이스케이프 문자는 ~행의 시작 부분에 입력됩니다.

원격 측 쉘에 들어가 exit거나 CtrlD들어가서 정지되어 종료 될 수없는 대화식 OpenSSH 세션을 종료하려면 ~점을 입력하십시오 .. 입력 줄의 시작 부분에 이스케이프 문자를 입력하려면 Enter 키를 먼저 눌러야합니다. 따라서 다음 순서는 대부분 SSH 세션을 종료합니다.

Enter~.

다른 탈출 순서

예를 들어 OpenSSH는 이외의 다른 이스케이프 시퀀스를 제공합니다 ~.. ~?세션 중에 들어가면 목록이 나타납니다. 몇 가지 예 :

  • ~따라 Ctrl-Z세션을 일시 중단
  • ~& 직접 배경에 넣습니다.
  • ~# 이 세션에서 전달 된 연결 목록을 제공합니다.
  • 줄의 시작 부분에 물결표를 입력하려면 두 번 입력해야합니다 ~~.

이스케이프 문자는 명령 행 옵션을 사용하여 변경할 수 있습니다 -e. 특수 값을 설정하면 -e none이스케이프가 비활성화되고 세션이 완전히 투명 해집니다.

명령 행 옵션 아래 ssh ( www.openssh.org 에서 참조 ) 의 OpenBSD 매뉴얼 페이지 도 참조하십시오.-e


2
쓸모없이 복잡하게 만들 수 있는데 왜 간단하게 만드나요?
MariusMatutiae 2016

7
@MariusMatutiae OP는 exit또는 에 입력 할 원격 셸이없고 Ctrl-D수신 프로세스 만있는 경우를 요청했습니다 . 나는 나의 해결책 이 멈 췄고 빠져 나갈 수없는 세션에 적합하다고 분명히 말했다 . 나는 이것을 더 명확하게하려고 노력했다. 더보기 쉽기를 바란다.
Dubu

5
나는 회의적이었다. 그러나 ~.공간이없는 것이 바로 내가 필요로하는 것이었다. :)
Jamey 2016 년

2
스위스 독일어 키보드 레이아웃에서 AltGr + ^를 누르면 물결표가 생성됩니다 (또한 차단 키임). 이로 인해 이스케이프 시퀀스가 ​​작동하지 않는 것 같습니다. 스위스 독일어로 기본 이스케이프를 입력하는 방법을 아는 사람이 있습니까?
Daniel Alder

4
@Dobu 이전에 작동하지 않은 이유를 찾았습니다. 동일한 줄에 ~를 입력 한 경우 (테스트중인 경우 쉽게 발생 함) 다음 ~. 시퀀스는 무시됩니다. Return을 먼저 눌러야했다 ...
Daniel Alder

32

SSH 쉘을 종료 하시겠습니까?

를 입력 exit하고을 누르 Enter거나 Ctrl+를 사용할 수 있습니다D


1
"exit"은 Ctrl + D가 VNC 뷰어에서 작동하지 않는 데 도움이되었습니다 ... 감사합니다
raj gupta

1
기계가 정지되거나 사라지거나 응용 프로그램이 입력에 응답하지 않는 경우에는 작동하지 않습니다
Daniel Alder

11

그냥 입력 exit하거나 logout(물론 Enter 키를 누르십시오) 둘 다 작동합니다.


4

ssh로 놀 수있는 다양한 옵션을 제공하는 지원되는 문자입니다.

지원되는 이스케이프 시퀀스 :

 ~.  - terminate session

 ~B  - send a BREAK to the remote system

 ~R  - Request rekey (SSH protocol 2 only)

 ~#  - list forwarded connections

 ~?  - this message

 ~~  - send the escape character by typing it twice

이스케이프는 개행 직후에만 인식됩니다.을 눌러 이스케이프 시퀀스 목록을 닫을 수 있습니다 Enter.



1

MacOS : ssh가 멈 추면 다음 순서를 사용하십시오.

ENTER 
SHIFT+`
.

여기서 : shift +`~ (물결 문자)를 생성합니다.

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