Hogyan tudok kitörni az ssh-ből, amikor zárolja?

345

Az iskolából gyakran ssh az otthonomba, de rendszerint, amikor megváltoztatom az osztályokat és a számítógépem felfüggeszti, a cső megtörik. Az ssh azonban egyszerűen bezárja a Ctrl + c , a Ctrl + z és a Ctrl + d nincs hatással.

Bosszantó, hogy újra kell indítanom a terminált, és még bosszantóbb, hogy bezárja és új ablakot hozzon létre.

Szóval a kérdésem: van-e könnyű módja annak, hogy az ssh-t megfelelően vágja meg (azaz ha a cső "normálisan" sikertelen, akkor egy csőből álló üzenettel lép ki)? Vagy kell kitalálnom, hogy mi a PID és manuálisan megölni?

    
készlet Wayne Werner 11.03.2011 17:22
forrás

3 válasz

480

A normál billentyűket assh munkameneten keresztül továbbítjuk, így egyik sem működik. Ehelyett használja a menekülési szekvenciákat. Az aktuális munkamenet megölése utána Enter ↵ , ~ , . .

Ezeknek a escape szekvenciáknak több lehet a Enter ↵ , ~ , ?

Supported escape sequences:
  ~.  - 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
(Note that escapes are only recognized immediately after newline.)

Bezárja az Escape szekvenciák listáját a be megnyitásával.

Figyeljük meg, hogy mivel a ~ ~ ütközésssh -ot küld a~ helyett a lehallgatás helyett, a N ssh kapcsolatokat a ~ N időtartamokkal. (Ez csak a ~ s esetén érvényes kbd> ~ ~ ~ ~ . lezárja assh a másik 4 ép.

    
válasz adott geekosaur 11.03.2011 18:18
forrás
51

Előfordulhat, hogy az SSH alkalmazásszintű keep-alives beállítását megakadályozza , hogy fagyassza le a kapcsolódási problémákat. A (z)~/.ssh/config ezt tartalmazza:

Host *
ServerAliveInterval 15
# ServerAliveCountMax 3

Ezzel az ssh kliens 15 másodpercenként elküldi az alkalmazások szintjét. Ha hárman nem sikerül egymás után (az alapértelmezettServerAliveCountMax), az ügyfél a kapcsolatot felfüggesztette és bezárja.

A másik% -kal szemben,TCPKeepAlive, ez be van jelölve a titkosított csatornán, és nem spoofable.

Megjegyezzük, hogy ezek a tartósok segítenek abban is, hogy a hosszú ideig üres kapcsolatokat életben tartsák, vagyis megakadályozzák, hogy félig zárt tcp munkamenetek érintetlenül érkeznek órákig.

Nagyon ajánlom ezt a funkciót bekapcsolni, ha rendszeresen beindulsz, de tudnia kell az enyhe biztonsági kockázatokról is. Egy ismert, egyszerű szöveges támadás könnyebbé válik, ha a támadó ismeri a készenléti kapcsolat időtartamát és tartalmát. Ez lehet az oka annak, hogy alapértelmezés szerint nincs engedélyezve.

    
válasz adott ulidtko 11.03.2011 19:51
forrás
39

Ahogy a geekosaurus válaszában megjegyeztük, a~. escape szekvencia megszünteti a kapcsolatot.

A menekülési szekvenciák teljes felsorolását és azok mőködését a~?:

Supported escape sequences:
  ~.  - terminate connection (and any multiplexed sessions)
  ~B  - send a BREAK to the remote system
  ~C  - open a command line
  ~R  - Request rekey (SSH protocol 2 only)
  ~^Z - suspend ssh
  ~#  - list forwarded connections
  ~&  - background ssh (when waiting for connections to terminate)
  ~?  - this message
  ~~  - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)
    
válasz adott scottl 15.03.2011 07:39
forrás