Is er een manier om alle SSH-verbindingen te verlaten en PuTTY in “één schot”? Ik werk in Windows 7 en gebruik PuTTY naar SSH voor verschillende Linux-hosts.

Een voorbeeld van de manier waarop ik merk dat ik werk:

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. 

Zoals hierboven beschreven, is er een manier om in één keer van host8 naar het sluiten van PuTTY te komen? Soms vind ik mezelf tot 5 of 10 hosts diep. Ik realiseer me dat ik op de X kan klikken om het PuTTY-venster te sluiten, maar ik wil er graag voor zorgen dat mijn SSH-verbindingen correct worden afgesloten door het exit-commando te gebruiken. Ik realiseer me ook dat ik “om tips vraag om luiheid te vergroten. Ik zal het gewoon afschrijven als” hoe kan ik efficiënter zijn “.

Opmerkingen

  • Niet direct wat je vraagt, maar wat dacht je ervan om meerdere keren op ctrl+d te drukken?
  • @UlrichDangel Ik heb dat nog nooit eerder gebruikt, maar ook een snelle manier om snel uit verbindingen te komen.
  • Nest je echt SSH-sessies 5 tot 10 niveaus diep? Realiseer je je dat ‘ een ingewikkelde tunnel creëert die alle pakketten in je SSH-sessie door al die hosts terugstuurt? Kun je het probleem oplossen door simpelweg geen ssh-sessies te nesten?
  • @ jw013 Nee, dat realiseerde ik me niet, maar het is logisch. Eerlijk gezegd was 5-10 niveaus overdreven, maar ik probeerde mijn vraag te illustreren over ” hoe je Putty in één klap netjes kunt verlaten. ”

Antwoord

Probeer de ssh ontsnappingsreeks voor het beëindigen van de verbinding.

In de ssh sessie, voer je ~. (tilde punt) in. U zult “de tekens niet zien wanneer u ze typt, maar de sessie wordt onmiddellijk beëindigd.

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

Van 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). 

Reacties

  • Best gaaf! Elke manier om ~. in een alias of functie? Gewoon om het een gemakkelijk te onthouden naam te geven, zoals exitall. Nu ‘ m vraag ik voor veel te veel :). Ik heb een paar dingen geprobeerd in ~/.bashrc maar krijg -bash: ~.: command not found. Ik veronderstel dat bash het als een string ziet en niet een escape-reeks die rechtstreeks van het toetsenbord komt.
  • Ik vind de ctrl+d -oplossing ook leuk, maar dit beantwoordt mijn vraag directer. Bedankt allemaal.
  • @Banjer bash ziet ~. nooit, het wordt ‘ afgehandeld door ssh zelf .
  • @Gilles gotcha, is logisch.
  • En er is ‘ geen garantie ee dat PuTTY dit ook doet. De CLI ssh -client heeft deze techniek nodig omdat deze ‘ s CLI. PuTTY is een GUI-applicatie en er zijn veel gebruiksvriendelijkere manieren om dit op een GUI te doen.

Answer

Druk gewoon op Ctrl D en het zal je daar uitloggen, Ctrl ingedrukt houden en op “d” drukken totdat het venster verdwijnt.

Opmerkingen

  • Helaas werkt dit ‘ niet universeel. Elke sessie met een editor of een ander programma op volledig scherm zal waarschijnlijk EOT negeren. En zelfs bash zal het midden op een opdrachtregel negeren. Probeer het zelf uit: typ een enkele letter en probeer Ctrl-D.
  • Wat doet Ctrl + D, ik bedoel of het veilig bestaat of het proces doodt?
  • Het wordt veilig afgesloten. Het is een shell-snelkoppeling die hetzelfde is als het typen van ‘ exit ‘ en op enter te drukken.
  • Eigenlijk de mijne ( windows git bash & ubuntu bash) geven een logout.
  • ja, ik geloof dat exit ook logout aanroept als ssh Verbindingen zijn meestal geen inlogsessies.

Answer

Sluit gewoon PuTTY. ( Alt + F4 standaard IIRC.)

Antwoord

Een andere manier is om function voor ssh te maken:

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

Helaas zal het ook altijd de verbinding verbreken en uitloggen van de console nadat u klaar bent met werken op het externe systeem.

Merk op dat u een dergelijke functie op al uw servers moet uitvoeren, anders zal deze hack niet werken . Trouwens, je kunt altijd een functie in ~ / .bashrc of ~ / .whatever_shell_you_use_rc plaatsen.

Het ziet er een beetje vuile hack uit in vergelijking met de rest.

Opmerkingen

  • function is niet POSIX – verwijder gewoon het trefwoord en je moet $@ citeren correct, of uw argumenten worden doorgegeven na woordsplitsing (slecht).

Antwoord

Of u kunt exec gebruiken om uw shell-proces met ssh bij het springen naar een andere host:

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 niveaus diep is niet mooi, aangezien het verkeer zal door alle andere servers gaan. Daarom raad ik niet aan om PuTTY of ssh (~.) Gewoon te doden, aangezien dit (afhankelijk van wat je doet) kan resulteren in verweesde processen op de servers.

Het is beter om te proberen en minder te zijn. lui “. Klik met de rechtermuisknop op de titelbalk van de putty om een nieuwe sessie snel te openen. Als je een” standaard “server hebt en 1 sprong daarvan accepteert, is de functie” Dubbele sessie “erg handig. Vooral wanneer je pubkey-authenticatie gebruikt.

Answer

Als je het niet erg vindt om wat scripts te doen, kun je dit doen.

Script: myssh .sh

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

Bel met het punt-commando:

$ . myssh [email protected] 

Als je wilt verlaat één niveau:

$ exit 

Als je alles wilt verlaten:

$ exit 5 

Reacties

  • Natuurlijk zou je het moeten kopiëren naar elke computer waar je ooit vanaf kunt sshen. Zou het ook niet ‘ zijn om gewoon een shell-functie genaamd ssh te definiëren? Dat zou de voorgaande periode, enz. Vermijden.

Answer

Logout typen in het putty-terminalvenster doet het voor me:

richard@forevermore:~ > logout 

Sluit de ssh-verbinding en verlaat de Putty-applicatie.

Reacties

  • Ik denk dat je ‘ de vraag niet correct hebt gelezen. OP doet ssh host1, en vervolgens, van host1, doet ssh host8. Op dat moment zou een logout hetzelfde doen als het exit commando dat ze al kennen – verlaat host8 en plaats ze terug in host1.
  • Oké, ik begrijp het, mijn fout.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *