모든 SSH 연결을 해제하고 PuTTY 를 “원샷”으로? 저는 Windows 7에서 작업하고 PuTTY를 사용하여 다양한 Linux 호스트에 SSH를 연결합니다.

내가 작업하는 방식의 예 :

SSH to host1 with PuTTY... banjer@host1:~> #...doin some work...ooh! need to go check something on host8... banjer@host1:~> ssh host8 banjer@host8:~> #...doin some work...OK time for lunch. lets close putty... banjer@host8:~> exit banjer@host1:~> exit Putty closes. 

위에 따르면 host8에서 PuTTY를 한 번에 닫는 방법이 있습니까? 때때로 나는 최대 5 ~ 10 명의 호스트를 발견합니다. X를 클릭하여 PuTTY 창을 닫을 수 있다는 것을 알고 있지만 exit 명령을 사용하여 SSH 연결이 제대로 닫히도록하고 싶습니다. 나는 또한 “게으름을 증가시키는 방법에 대한 팁을 요청하고 있음을 알고 있습니다.”어떻게하면 더 효율적일 수 있습니까 “라고 적겠습니다.

댓글

  • 직접 물어 보는 것이 아니라 ctrl+d를 여러 번 누르는 것은 어떻습니까?
  • @UlrichDangel 이전에는 사용해 본 적이 없지만 연결을 신속하게 해제 할 수있는 빠른 방법입니다.
  • SSH 세션을 5 ~ 10 단계 깊이로 중첩하고 있습니까? '가 모든 호스트를 통해 ssh 세션의 모든 패킷을 반송하는 복잡한 터널을 생성한다는 사실을 알고 있습니까? ssh 세션을 중첩하지 않는 것만으로 문제를 해결할 수 있습니까?
  • @ jw013 아니요, 몰랐지만 말이됩니다. 솔직히 5 ~ 10 개의 레벨은 과장된 것이지만 " Putty를 한 번에 깔끔하게 종료하는 방법에 대한 제 질문을 설명하려고했습니다. "

답변

ssh 연결 종료 이스케이프 시퀀스.

ssh 세션에 ~. (물결표)를 입력합니다. 문자를 입력 할 때 문자가 표시되지 않지만 세션이 즉시 종료됩니다.

$ ~. $ Connection to me.myhost.com closed. 

From man 1 ssh

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 for SSH protocol version 2 and if the peer supports 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 remote port-forwardings using -KR[bind_address:]port. !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 for SSH protocol version 2 and if the peer supports it). 

댓글

  • 정말 멋지네요. 어떤 방식 으로든 ~.를 별칭이나 함수로 바꾸시겠습니까? exitall와 같이 기억하기 쉬운 이름을 지정하세요. 이제 ' 너무 많이 :). 나는 ~/.bashrc에서 몇 가지를 시도했지만 -bash: ~.: command not found를 얻었습니다. bash는 그것을 문자열로 보지 않고 키보드에서 직접 나오는 이스케이프 시퀀스입니다.
  • ctrl+d 솔루션도 마음에 들지만 이것이 제 질문에 더 직접적으로 대답합니다. 감사합니다.
  • @Banjer bash는 ~.를 보지 못하며 '는 ssh 자체에서 처리합니다. .
  • @Gilles gotcha, 말이됩니다.
  • 그리고 ' 보증이 없습니다. ee PuTTY도이 작업을 수행합니다. CLI ssh 클라이언트는이 기술이 '의 CLI이기 때문에 필요합니다. PuTTY는 GUI 애플리케이션이며 GUI에서이 작업을 수행하는 훨씬 더 사용자 친화적 인 방법이 있습니다.

답변

Ctrl D 를 누르면 로그 아웃하여 Ctrl을 누르고 창이 사라질 때까지 “d”를 누릅니다.

댓글

  • 안타깝게도 ' 보편적으로 작동하지 않습니다. 편집기 또는 기타 전체 화면 도구를 실행하는 모든 세션은 EOT를 무시할 가능성이 높습니다. 그리고 bash도 명령 줄 중간에서 무시합니다. 직접 시도해보십시오. 단일 문자를 입력하고 Ctrl-D를 시도해보십시오.
  • Ctrl + D는 무엇을합니까? 즉, Ctrl + D가 안전하게 존재하는지 아니면 프로세스를 죽일까요?
  • 안전하게 종료됩니다. ' exit '를 입력하고 Enter 키를 누르는 것과 동일한 셸 바로 가기입니다.
  • 실제로 내 것입니다 ( windows git bash & ubuntu bash) logout를 실행합니다.
  • 예, exit도 ssh로 로그 아웃을 호출한다고 생각합니다. 연결은 로그인 세션이 아닌 경향이 있습니다.

답변

PuTTY를 닫으면됩니다. (기본 IIRC는 Alt + F4 입니다.)

답변

또 다른 방법은 ssh에 대해 function를 만드는 것입니다.

 function ssh(){ /usr/bin/ssh $@ ; exit ; } 

안타깝게도 “원격 시스템에서 작업을 마친 후에는 항상 연결을 닫고 콘솔에서 로그 아웃합니다.

모든 서버에서 이러한 기능을 만들어야합니다. 그렇지 않으면이 해킹이 작동하지 않습니다. . Btw 당신은 항상 ~ / .bashrc 또는 ~ / .whatever_shell_you_use_rc에 함수를 넣을 수 있습니다.

Uther의 방식에 비해 약간 더러운 해킹처럼 보입니다.

Comments

  • function는 POSIX가 아닙니다. 키워드를 제거하고 $@를 인용해야합니다. 그렇지 않으면 단어 분할 후에 인수가 전달됩니다 (나쁨).

Answer

또는 exec를 사용하여 다른 호스트로 이동할 때 ssh를 사용한 쉘 프로세스 :

SSH to host1 with PuTTY... banjer@host1:~> #...doin some work...ooh! need to go check something on host8... banjer@host1:~> exec ssh host8 banjer@host8:~> #...doin some work...OK time for lunch. lets close putty... banjer@host8:~> exit Putty closes. 

5 단계 깊이는 트래픽이 많기 때문에 예쁘지 않습니다. 다른 모든 서버를 통과합니다. 이 때문에 PuTTY 또는 ssh (~.) 만 죽이는 것은 권장하지 않습니다. 수행하는 작업에 따라 서버에서 고아 프로세스가 발생할 수 있기 때문입니다.

더 적게 시도하는 것이 좋습니다. ” lazy “. puttys 제목 표시 줄을 마우스 오른쪽 버튼으로 클릭하면 새 세션을 빠르게 열 수 있습니다.”기본 “서버가 있고 여기에서 1 번 점프를 허용하면”Duplicate Session “기능이 매우 유용합니다. 특히 pubkey 인증을 사용할 때 더욱 그렇습니다.

답변

작은 스크립팅을해도 괜찮다면 그렇게 할 수 있습니다.

스크립트 : myssh .sh

#!/bin/bash ssh $1 if [ $? -eq 5 ]; then exit 5 fi 

점 명령을 통해 호출 :

$ . myssh [email protected] 

원하는 경우 한 단계 종료 :

$ exit 

모두 종료하려는 경우 :

$ exit 5 

댓글

  • 물론 ssh를 사용할 수있는 모든 컴퓨터에 복사해야합니다. 또한 ' ssh라는 셸 함수를 정의하는 것이 더 쉬울까요? 이전 기간 등을 피할 수 있습니다.

답변

퍼티 터미널 창에서 로그 아웃을 입력하면 나 :

richard@forevermore:~ > logout 

ssh 연결을 닫고 Putty 응용 프로그램을 종료합니다.

댓글

  • 문제를 ' 올바로 읽지 않으신 것 같습니다. OP는 ssh host1를 수행 한 다음 host1에서 ssh host8를 수행합니다. 이 시점에서 logout는 이미 알고있는 exit 명령과 동일한 작업을 수행합니다. 그런 다음 host1에 다시 넣습니다.
  • 알겠습니다.

답글 남기기

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