Javítás: Az ál-terminál nem lesz kiosztva, mert az stdin nem terminál



Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére

A legtöbb esetben csak akkor kap zavaró „álterminált nem osztanak ki, mert a stdin nem terminál” hibát, ha valamilyen SSH parancsot futtat egy szkriptből. Ha ugyanazt a parancsot a parancssorból futtatja, akkor lehet, hogy tökéletesen működik.



Mielőtt továbblépne, ellenőrizze, hogy hozzáadta-e a nyilvános kulcsát az SSH-ügynökhöz, majd próbálja újra használni az ssh-t. Lehet, hogy éppen hiányzott egy kulcs. Másrészt, ha ez nem működik, akkor egy kis hibaelhárítást kell végrehajtania a szkriptben.



1. módszer: Az ál-tty allokáció kényszerítése és letiltása

Van egy pár parancssori lehetőség, amelyek gyorsan megoldhatják a problémát. Próbálja ki az ssh -t -t -R-t, majd a többi elemet, amihez csatlakozni próbált az álterminál kiosztásának kényszerítése érdekében. Tegyük fel például, hogy az ssh -p 80 appuals@ssh.example.com címet fogta használni, hogy bejelentkezzen fiókjába az example.com webhelyen, ami természetesen egy cumi a nem létező dokumentációk számára.



Próbálkozzon pl. ssh -t -t -R -p 80 appuals@ssh.example.com és nézze meg, hogy ez megoldja-e a problémát. A sikeres bejelentkezéshez természetesen le kell cserélnie a nevet a tényleges fiókra és a gazdagép nevére. Ez kényszeríti a terminál kiosztását, ezért nem szabad látnia, hogy az álterminált nem osztják ki, mert az stdin nem terminálhiba.

Másrészt előfordulhat, hogy a hibaüzenetek állandó sora lesz a végén. Néhány felhasználó megjegyezte, hogy ezt mulatságosnak lehet tekinteni.

Ez minden bizonnyal frusztráló, bár ettől függetlenül, ezért használja a Ctrl + C billentyűkombinációt a folyamat megöléséhez.



álterminál

Megpróbálhatja csak egy -t kapcsolóval, vagy növelheti a számot. Ha ez nem működik, akkor cseréljen minden -t kapcsolót egy -T kapcsolóra a parancsban, pl. ssh -T -R -p 80 appuals@ssh.example.com és nézze meg, hogy ez működik-e.

Ez a módszer teljesen kikapcsolja az egész álterminál-allokációs folyamatot, így működhet olyan esetekben, amikor a kényszerítés nem. Természetesen ezek egyike sem okozhat problémát a parancssorból, de mindenképpen jegyezzen fel, amikor megtalálja, hogy melyik opció működik a szkriptből, így felhasználhatja azt a jövőbeni szkriptekben, amelyeket futtatnia kell az említett szerver eléréséhez.

Mivel az ssh parancs ennek a két ellentétes opciónak hasonló neveket adott, ne feledje, hogy a -t kényszeríti az ál-terminálok kiosztását, míg a -T letiltja azt. Ezek az opciók megkülönböztetik a kis- és nagybetűket, és gyakran szükségesek a szkriptek belsejéből, mert az ssh működéséhez hagyományos TTY terminálra van szükség. Természetes, hogy Ön a terminálemulátorát használja erre a célra.

2. módszer: Az sshpass használata

Egyesek azt tapasztalhatják, hogy a szkriptjeik jobban működnek az sshpass paranccsal, amely alapértelmezés szerint nem szerepel benne. Mindig telepítheti a sudo apt-get install sshpass vagy a sudo yum install sshpass programmal, ha inkább kipróbálná, vagy mert szüksége van rá a konkrét felhasználási esetekhez.

Ha még nem használja, akkor valószínűleg nincs szüksége rá. Ennek ellenére ugyanazokkal a technikákkal meglepheti az ál-terminál kiosztásával kapcsolatos hibaüzeneteket egy ilyen környezetben is.

Például használja az sshpass -p jelszót ssh -T appuals@ssh.example.com, hogy a rendszert a parancsfájl belsejéből kényszerítse.

3. módszer: Munkakezelési hibák kijavítása

Esetenként még egy hibaüzenetet kaphat, még akkor is, ha mindezt kijavította. Ha olyan figyelmeztetést kap, amely nem olvas hozzáférést a tty-hez, és akkor emlékeztet arra, hogy a héjában nincs munkaellenőrzés, akkor képesnek kell lennie valamilyen normális munkavégzésre.

Ezt a hibát az okozza, hogy valami szabálytalan a távoli kiszolgálón, akár csh, akár tcsh, akár az Almquist vagy más shell esetében. Lehet, hogy nem vette észre, mert más hibaüzeneteket kapott, de feltéve, hogy nem lát másokat az ál-terminálokról, lehetővé kell tenni, hogy viszonylag úgy folytassa, mint általában.

Lehet, hogy ebben az esetben nem szeretné megpróbálni a Ctrl + Z billentyűkombinációt a folyamatok leállításához, mert lehet, hogy nincs mód arra, hogy újra elindítsák őket. Ha hibaüzenetet kap, amely szerint leállított feladatok vannak, amikor kilép, akkor nem engedélyezheti a kijelentkezést.

leállt munkahelyek

Használja a ps és kill parancsokat minden olyan munka bezárásához, amelyet nem tud bezárni, feltéve, hogy nem bánja, ha közben elvesztené a munkát. Most már kiléphet.

Címkék Linux hogyan ssh 3 perc olvasás