చాలా సందర్భాల్లో, మీరు గందరగోళంగా “సూడో-టెర్మినల్ కేటాయించబడరు ఎందుకంటే stdin టెర్మినల్ కాదు” లోపం మీరు స్క్రిప్ట్ నుండి ఒక విధమైన SSH ఆదేశాన్ని నడుపుతున్నప్పుడు మాత్రమే. మీరు అదే ఆదేశాన్ని కమాండ్ లైన్ నుండి నడుపుతుంటే, అది బాగా పని చేస్తుంది.
ఇంకేముందు వెళ్ళే ముందు, మీరు మీ పబ్లిక్ కీని SSH ఏజెంట్కు జోడించారని నిర్ధారించుకోండి, ఆపై మళ్ళీ ssh ని ఉపయోగించడానికి ప్రయత్నించండి. మీరు ఇప్పుడే కీని కోల్పోవచ్చు. మరోవైపు, ఇది పని చేయకపోతే, మీరు మీ స్క్రిప్ట్లో కొద్దిగా ట్రబుల్షూటింగ్ చేయాలి.
విధానం 1: నకిలీ-టిటి కేటాయింపును బలవంతం చేయడం మరియు నిలిపివేయడం
మీ కోసం సమస్యను త్వరగా పరిష్కరించే ఒక జత కమాండ్ లైన్ ఎంపికలు ఉన్నాయి. నకిలీ-టెర్మినల్ కేటాయింపును బలవంతం చేయడానికి మీరు కనెక్ట్ చేయడానికి ప్రయత్నిస్తున్న మిగిలిన వాటిని ssh -t -t -R ప్రయత్నించండి. ఉదాహరణకు, example.com లో మీ ఖాతాలోకి లాగిన్ అవ్వడానికి మీరు ssh -p 80 appuals@ssh.example.com ను ఉపయోగించబోతున్నారని చెప్పండి, ఇది ఉనికిలో లేని డాక్యుమెంటేషన్ కోసం డమ్మీ.
అమలు చేయడానికి ప్రయత్నించండి ఉదా. ssh -t -t -R -p 80 appuals@ssh.example.com మరియు ఇది సమస్యను పరిష్కరిస్తుందో లేదో చూడండి. సిస్టమ్లోకి విజయవంతంగా లాగిన్ అవ్వడానికి మీరు పేరును మీ అసలు ఖాతా మరియు హోస్ట్ పేరుతో భర్తీ చేయాలి. ఇది టెర్మినల్ యొక్క కేటాయింపును బలవంతం చేస్తుంది, కాబట్టి మీరు సూడో టెర్మినల్ కేటాయించబడదని చూడకూడదు ఎందుకంటే stdin టెర్మినల్ లోపం కాదు.
మరోవైపు, మీరు స్థిరమైన దోష సందేశాలతో ముగుస్తుంది. కొంతమంది వినియోగదారులు దీనిని వినోదభరితంగా భావించవచ్చని వ్యాఖ్యానించారు.
సంబంధం లేకుండా ఇది ఖచ్చితంగా నిరాశపరిచింది, కాబట్టి ప్రక్రియను చంపడానికి Ctrl + C ని ఉపయోగించండి.
మీరు ఒక -t స్విచ్ మాత్రమే ఉపయోగించడం లేదా సంఖ్యను పెంచడం ప్రయత్నించవచ్చు. ఇది పని చేయకపోతే, కమాండ్లోని ఏదైనా -t స్విచ్లను -T స్విచ్తో భర్తీ చేయండి, ఉదా. ssh -T -R -p 80 appuals@ssh.example.com మరియు అది పనిచేస్తుందో లేదో చూడండి.
ఈ పద్ధతి మొత్తం నకిలీ-టెర్మినల్ కేటాయింపు ప్రక్రియను పూర్తిగా నిలిపివేస్తుంది, కాబట్టి ఇది బలవంతం చేయని సందర్భాల్లో ఇది పని చేస్తుంది. వాస్తవానికి, వీటిలో ఏదీ కమాండ్ లైన్ నుండి సమస్యగా ఉండకూడదు, కానీ మీ స్క్రిప్ట్ నుండి ఏ ఐచ్చికం పనిచేస్తుందో మీరు కనుగొన్నప్పుడు ఒక గమనికను తయారుచేసుకోండి, అందువల్ల మీరు చెప్పిన సర్వర్ను యాక్సెస్ చేయడానికి మీరు భవిష్యత్తులో స్క్రిప్ట్లలో ఉపయోగించవచ్చు.
Ssh కమాండ్ ఈ రెండు వ్యతిరేక ఎంపికలకు సారూప్య పేర్లను ఇచ్చినందున, -t దానిని నకిలీ-టెర్మినల్స్ కేటాయింపును బలవంతం చేస్తుందని గుర్తుంచుకోండి -T దానిని నిలిపివేస్తుంది. ఈ ఎంపికలు కేస్ సెన్సిటివ్, మరియు అవి స్క్రిప్ట్ల లోపలి నుండి తరచుగా అవసరం ఎందుకంటే ssh కి పని చేయడానికి సాంప్రదాయ TTY టెర్మినల్ అవసరం. సహజంగానే, మీ విషయంలో మీరు ఈ ప్రయోజనం కోసం మీ టెర్మినల్ ఎమ్యులేటర్ను ఉపయోగిస్తున్నారు.
విధానం 2: sshpass ను ఉపయోగించడం
కొంతమంది తమ స్క్రిప్ట్లు డిఫాల్ట్గా చేర్చబడని sshpass ఆదేశంతో మెరుగ్గా పనిచేస్తాయని కనుగొనవచ్చు. మీరు దీన్ని ప్రయత్నించడానికి ఇష్టపడితే లేదా మీ నిర్దిష్ట ఉపయోగం విషయంలో మీకు ఇది అవసరమైతే మీరు దీన్ని ఎల్లప్పుడూ సుడో ఆప్ట్-గెట్ ఇన్స్టాల్ sshpass లేదా సుడో యమ్ ఇన్స్టాల్ sshpass తో ఇన్స్టాల్ చేయవచ్చు.
మీరు దీన్ని ఇప్పటికే ఉపయోగించకపోతే, మీకు బహుశా ఇది అవసరం లేదు. ఏదేమైనా, ఈ రకమైన వాతావరణంలో కూడా నకిలీ-టెర్మినల్ కేటాయింపుకు సంబంధించిన దోష సందేశాలను ఆశ్చర్యపరిచేందుకు మీరు అదే పద్ధతులను ఉపయోగించవచ్చు.
ఉదాహరణకు, మీ స్క్రిప్ట్ లోపలి నుండి సిస్టమ్ను పని చేయమని బలవంతం చేయడానికి sshpass -p password ssh -T appuals@ssh.example.com ని ఉపయోగించండి.
విధానం 3: ఉద్యోగ నిర్వహణ లోపాలను పరిష్కరించడం
ఇవన్నీ పరిష్కరించిన తర్వాత కూడా మీకు మరొక దోష సందేశం రావచ్చు. మీరు tty కి ప్రాప్యత లేని ఒక హెచ్చరికను స్వీకరిస్తుంటే, మీ షెల్లో ఉద్యోగ నియంత్రణ లేదని మీరు గుర్తుచేస్తే మీరు కొంతవరకు సాధారణంగా పని చేయగలరు.
రిమోట్ సర్వర్లో csh, tcsh లేదా ఆల్మ్క్విస్ట్ లేదా ఇతర షెల్కు సంబంధించిన ఏదో సక్రమంగా ఉండటం వల్ల ఈ లోపం సంభవిస్తుంది. మీరు ఇతర దోష సందేశాలను పొందుతున్నందున మీరు దీన్ని గమనించి ఉండకపోవచ్చు, కానీ మీరు నకిలీ టెర్మినల్స్ గురించి ఇతరులను చూడకపోతే మీరు సాధారణంగా మాదిరిగానే కొనసాగించడం సాధ్యమవుతుంది.
ప్రక్రియలను ఆపడానికి మీరు ఈ సందర్భంలో Ctrl + Z ని ఉపయోగించటానికి ప్రయత్నించకపోవచ్చు, అయినప్పటికీ, వాటిని మళ్లీ ప్రారంభించడానికి మార్గం లేకపోవచ్చు. మీరు నిష్క్రమించేటప్పుడు ఆగిపోయిన ఉద్యోగాలు ఉన్నాయని చదివే దోష సందేశం మీకు వస్తే, అప్పుడు మీరు లాగ్ అవుట్ చేయడానికి అనుమతించబడరు.
ఈ ప్రక్రియలో పనిని కోల్పోవడాన్ని మీరు పట్టించుకోవడం లేదని భావించి, మీరు మూసివేయలేని ఏవైనా ఉద్యోగాలను మూసివేయడానికి ps మరియు ఆదేశాలను చంపండి. మీరు ఇప్పుడు నిష్క్రమించగలరు.
టాగ్లు లైనక్స్ హౌ-టు ssh 3 నిమిషాలు చదవండి