Šādas sesijas paliek savienotas, kamēr redaktors startē, un tad ekrāns pārstāj atjaunoties, lai gan SSH process acīmredzami ir dzīvs. Rakstīšana neko nedod, Ctrl-C izskatās, ka neko nedara, un acīmredzamais secinājums ir, ka VPN kaut ko nometa. Lielāko daļu laika tunelis ir kārtībā un attālais pseidoterminālis ir stāvoklī, ko neviens nav domājis, jo atbalss, kanoniskā ievade un plūsmas vadība dzīvo terminālī, nevis tīklā. Noskaidrot, kurš no šiem trim pārvietojās, ir divu komandu darbs.

Iesalšana dzīvo terminālī, nevis tunelī

Pseidoterminālis pārvadā vairāk nekā baitus. Tas tur rindas disciplīnas karodziņus, kas izlemj, vai ievade tiek atspoguļota, vai lasījumi gaida jaunu rindu, vai noteiktas rakstzīmes ģenerē signālus un vai izvadi var apturēt ar vadības rakstzīmi. Interaktīvs redaktors pārslēdz šo termināli uz neapstrādātu režīmu visam laikam un tam vajadzētu atjaunot iepriekšējos iestatījumus, izejot. Kad atjaunošana nenotiek, čaula, uz kuru atgriežaties, nav čaula, kuru atstājāt, pat ja savienojums nekad nav pārtraukts.

Salīdziniet termināļus, pirms kaut ko secināt. Otra sesija ar to pašu redaktoru pierāda, ka klients un ceļš spēj veikt darbu; tā neko nepasaka par termināli, kura karodziņi ir salauzti.

Nolasiet iestatījumus terminālī, kas iesala

Vispirms identificējiet ierīci, pēc tam nolasiet abas tās stāvokļa formas. Lasāmā forma parāda, kas ir iestatīts, un mašīnforma ir tā, ko vēlāk varat ievadīt atpakaļ.

tty
stty -a
stty -g

Trīs karodziņu grupas izskaidro lielāko daļu šo ziņojumu. Atbalss iestatījumi izlemj, vai taustiņu nospiedumi vispār parādās, tāpēc terminālis ar izslēgtu atbalsi izskatās miris, kamēr čaula saņem katru rakstzīmi. Kanoniskais režīms izlemj, vai programma redz ievadi pa rindai, tāpēc kanoniskajā režīmā atstāts terminālis liek neapstrādāta režīma lietotnei izskatīties tā, it kā tā ignorētu taustiņus līdz Enter. Plūsmas vadības iestatījumi izlemj, vai terminālis pakļaujas XON un XOFF rakstzīmēm, un šī grupa rada pārliecinošāko viltus iesalšanu no trim.

Ierakstiet izvadi, pirms kaut ko maināt, it īpaši, ja sesijā ir pielāgotas taustiņu saites, no kurām kāds ir atkarīgs. Mašīnforma ir drošākais ieraksts, ar nosacījumu, ka tā ir atkarīga no ieviešanas un to jāatjauno tāda paša veida sistēmai, kas to radījusi.

Salabojiet to vienu termināli, nevis sesiju, kurā rakstāt

Standarta labojums atjauno veselīgo profilu, ko uzskaita rokasgrāmatas lapa, un tas ietekmē tikai vienu termināli. Ja redaktors šajā terminālī vēl tur nesaglabātu darbu, atstājiet to mierā, līdz darbs tiks saglabāts.

No citas čaulas mērķējiet tieši uz iesalušo ierīci, lai terminālis, kurā strādājat, paliktu neskarts.

stty -F /dev/pts/7 -a
stty -F /dev/pts/7 sane

Tukšs ekrāns ar bojātu attēlojumu ir atsevišķa problēma no salauztas rindas disciplīnas, un programma reset to risina, izvadot termināļa inicializācijas secības. Vispirms izmēģiniet stāvokļa labojumu, jo tas maina iestatījumus, ko varat pārbaudīt, kamēr reset secība pārraksta ekrānu un neko neizskaidro par to, kā tas salūza.

Ctrl-S slazds aiz pārliecinošas iesalšanas

Kad programmatūras plūsmas vadība ir ieslēgta un parastās rakstzīmes ir piešķirtas, Ctrl-S liek terminālim pārtraukt sūtīt izvadi, un Ctrl-Q liek turpināt. Sesija visu laiku paliek dzīva, viens Ctrl-Q bieži ir viss labojums, un nevienā žurnālā nekas neparādās, un tā šī iesalšana pārdzīvo tik daudzas eskalācijas.

Pārbaudiet faktiskos iestatījumus, nevis pieņemiet tos. Sākuma un apturēšanas rakstzīmes var piešķirt no jauna vai atspējot, un terminālis ar izslēgtu plūsmas vadību nereaģēs uz nevienu no tām.

Ja stāvoklis atgriežas vai pats SSH iestrēgst

Atkārtots slikts stāvoklis norāda uz kaut ko, kas maina karodziņus, tos neatjaunojot: starta fails, ietvērējskripts, multipleksors, kas atiestata nepareizo logu, vai lietotne, kas mirst, turot neapstrādāto režīmu. Pievienojiet nosacītu pārbaudi, kas ziņo stāvokli, nevis bez nosacījuma atiestatīšanu, jo vispārēja atiestatīšana slēpj cēloni un var pārrakstīt apzinātus iestatījumus.

Kad arī parastā SSH plūsma iestrēgst vai labojums neko nemaina, terminālis pārstāj būt aizdomās turamais.

ssh -vvv [email protected]
ping -M do -s 1400 -c 3 host.example.com

Iestrēgums, kas parādās tikai lielu pārsūtīšanu laikā, liecina par ceļa MTU problēmu, bet tas, kas aprī arī atsevišķus nospiedumus, norāda uz ceļu vai serveri, nevis uz paketes lielumu. Turiet termināļa pierādījumus atsevišķi no tīkla pierādījumiem, jo otrā sesijā strādājošs redaktors nav pierādījums, ka pirmais terminālis kādreiz bija vesels.

Saistītie raksti