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

A legtöbb esetben csak akkor kap zavaró „ál-terminá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 ez tökéletesen működhet.

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 opció, 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 [email protected] címet fogta használni, hogy bejelentkezzen fiókjába az example.com címen, ami természetesen egy cumi a nem létező dokumentációk számára.

Próbálkozzon például az ssh -t -t -R -p 80 [email protected] futtatásával, é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ókjával és a gazdagép nevével. 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 elpusztításához.

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

Ez a módszer teljesen kikapcsolja az ál-terminál kiosztási 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 úgy találhatjá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 szeretné kipróbálni, 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 [email protected], 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, akkor emlékeztetni fogja, hogy a parancsértelmezőjében 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 álterminálokról, lehetővé kell tenni a viszonylagos folytatást, 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 azt írja, hogy leállított feladatok vannak, amikor kilép, akkor nem engedélyezheti a kijelentkezést.

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ézi a Linux hogyan ssh-jét