Ayusin: Ang Pseudo-terminal ay hindi ilalaan dahil ang stdin ay hindi isang terminal



Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema

Sa karamihan ng mga kaso, makakatanggap ka ng isang nakalilito na 'pseudo-terminal ay hindi ilalaan dahil ang stdin ay hindi isang terminal' na error lamang kapag nagpapatakbo ka ng isang uri ng utos ng SSH mula sa isang script. Kung nagpapatakbo ka ng parehong utos mula sa linya ng utos, kung gayon maaari itong gumana ng perpektong pagmultahin.



Bago magpatuloy, tiyakin na naidagdag mo ang iyong pampublikong key sa ahente ng SSH at pagkatapos ay subukang gamitin muli ang ssh. Maaaring nawalan ka lang ng susi. Sa kabilang banda, kung hindi ito gumana kakailanganin mong gumawa ng kaunting pag-troubleshoot sa iyong script.



Paraan 1: Pagpipilit at Hindi Paganahin ang pseudo-tty Allocation

Mayroong isang pares ng mga pagpipilian sa linya ng utos na maaaring mabilis na ayusin ang problema para sa iyo. Subukan ang ssh -t -t -R na sinusundan ng natitirang kung ano ang sinusubukan mong kumonekta upang pilitin ang paglalaan ng pseudo-terminal. Halimbawa, sabihin nating gagamit ka ng ssh -p 80 appuals@ssh.example.com upang mag-log in sa iyong account sa example.com, na syempre ay isang dummy para sa dokumentasyon na wala.



Subukang tumakbo hal. ssh -t -t -R -p 80 appuals@ssh.example.com at tingnan kung aayusin nito ang problema. Kakailanganin mo syempre palitan ang pangalan ng iyong tunay na account at hostname upang matagumpay na mag-log in sa system. Pinipilit nito ang paglalaan ng isang terminal, kaya hindi mo dapat makita ang pseudo-terminal na hindi ilalaan dahil ang stdin ay hindi isang error sa terminal.

Sa kabilang banda, maaari ka lamang mapunta sa isang pare-pareho na mga string ng mga mensahe ng error. Ang ilang mga gumagamit ay sinabi na ito ay maaaring maituring na nakakaaliw.

Tiyak na nakakabigo kahit na hindi alintana, kaya gumamit ng Ctrl + C upang patayin ang proseso.



pseudo-terminal

Maaari mong subukan ang alinman sa paggamit lamang ng isang -t switch o pagdaragdag ng numero. Kung hindi ito gagana, pagkatapos ay palitan ang anumang mga switch ng -t na may switch na -T sa utos, hal. ssh -T -R -p 80 appuals@ssh.example.com at tingnan kung gagana iyon.

Hindi pinagana ng pamamaraang ito ang buong proseso ng paglalaan ng pseudo-terminal nang sama-sama, kaya maaari itong gumana sa mga kaso kung saan hindi ito pinipilit. Siyempre, wala sa ito ang dapat na isang problema mula sa linya ng utos, ngunit tiyaking gumawa ng isang tala kapag nahanap mo kung aling pagpipilian ang gumagana mula sa iyong script upang magamit mo ito sa anumang mga hinaharap na script na kailangan mong patakbuhin upang ma-access ang nasabing server.

Dahil binigyan ng utos ng ssh ang dalawang magkataliwing pagpipilian na magkatulad na mga pangalan, tandaan na pinipilit ng -t ang paglalaan ng mga pseudo-terminal habang hindi pinapagana ng -T Ang mga pagpipiliang ito ay sensitibo sa kaso, at madalas silang kinakailangan mula sa loob ng mga script dahil kailangan ng ssh ng isang tradisyunal na TTY terminal upang gumana. Naturally, sa iyong kaso gagamitin mo ang iyong terminal emulator para sa hangaring ito.

Paraan 2: Paggamit ng sshpass

Maaaring malaman ng ilang tao na ang kanilang mga script ay mas mahusay na gumagana sa sshpass command, na hindi kasama bilang default. Maaari mo itong laging mai-install sa sudo apt-get install sshpass o sudo yum install sshpass kung gugustuhin mong subukan ito o dahil kailangan mo ito para sa iyong tukoy na kaso ng paggamit.

Kung hindi mo pa ito ginagamit, malamang na hindi mo ito kailangan. Gayunpaman, maaari mong gamitin ang parehong mga diskarte upang sorpresa ang mga mensahe ng error na nauugnay sa pseudo-terminal na paglalaan sa ganitong uri ng isang kapaligiran din.

Halimbawa, gumamit ng sshpass -p password ssh -T appuals@ssh.example.com upang pilitin ang system na gumana mula sa loob ng iyong script.

Paraan 3: Pag-aayos ng Mga Error sa Pamamahala ng Trabaho

Sa okasyon maaari kang makakuha ng isa pang mensahe ng error kahit na naayos ang lahat ng ito. Kung nakakatanggap ka ng isang babala na walang mabasa sa pag-access at pagkatapos ay pinapaalalahanan mo na walang kontrol sa trabaho sa iyong shell dapat na magtrabaho ka nang medyo normal.

Ang error na ito ay sanhi ng isang bagay na hindi regular sa remote server na nauugnay sa alinman sa csh, tcsh o posibleng maging ang Almquist o iba pang shell. Maaaring hindi mo ito napansin dahil nakakakuha ka ng iba pang mga mensahe ng error, ngunit ibinigay na hindi ka nakakakita ng iba pa tungkol sa mga pseudo-terminal na maaaring posible na magpatuloy na medyo tulad ng dati mong ginagawa.

Maaaring hindi mo nais na subukang gamitin ang Ctrl + Z sa kasong ito upang ihinto ang mga proseso, dahil, dahil maaaring walang paraan upang masimulan silang mai-back up muli. Kung nakakakuha ka ng isang mensahe ng error na nagbabasa na may mga tumitigil na trabaho kapag lumabas ka, hindi ka papayag na mag-logout.

tumigil sa trabaho

Gamitin ang ps at pumatay ng mga utos upang isara ang anumang mga trabaho na hindi mo masasara, sa pag-aakalang hindi mo balewala ang pagkawala ng trabaho sa proseso. Makaka-exit ka na ngayon.

Mga tag Paano sa Linux ssh Basahin ang 3 minuto