모든 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 연결이 제대로 닫히도록하고 싶습니다. 나는 또한 “게으름을 증가시키는 방법에 대한 팁을 요청하고 있음을 알고 있습니다.”어떻게하면 더 효율적일 수 있습니까 “라고 적겠습니다.
댓글
답변
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
에 다시 넣습니다. - 알겠습니다.
ctrl+d
를 여러 번 누르는 것은 어떻습니까?