ఈ కథనం SSHని మరింత ప్రభావవంతంగా ఉపయోగించడం కోసం మా ఉత్తమ అభ్యాసాలను కలిగి ఉంది. దీనిలో మీరు ఎలా చేయాలో నేర్చుకుంటారు:
- SSH లాగిన్కు రెండవ కారకాన్ని జోడించండి
- ఏజెంట్ ఫార్వార్డింగ్ని సురక్షితంగా ఉపయోగించండి
- అంతరాయం కలిగిన SSH సెషన్ నుండి లాగ్ అవుట్ చేయండి
- నిరంతర టెర్మినల్ను తెరిచి ఉంచండి
- స్నేహితుడితో రిమోట్ టెర్మినల్ సెషన్ను షేర్ చేయండి (జూమ్ లేదు!)
మీ SSHకి రెండవ కారకాన్ని జోడిస్తోంది
మీరు మీ SSH కనెక్షన్లకు ఐదు విభిన్న మార్గాల్లో ప్రమాణీకరణ యొక్క రెండవ కారకాన్ని జోడించవచ్చు:
- మీ OpenSSHని నవీకరించండి మరియు ఎన్క్రిప్షన్ కీని ఉపయోగించండి. ఫిబ్రవరి 2020లో, OpenSSH FIDO U2F (యూనివర్సల్ సెకండ్ ఫ్యాక్టర్) ఎన్క్రిప్షన్ కీలకు మద్దతును జోడించింది. ఇది గొప్ప కొత్త ఫీచర్, కానీ ఒక మినహాయింపు ఉంది: ఫిబ్రవరి నవీకరణ వారి కోసం కొత్త కీ రకాలను పరిచయం చేసినందున, OpenSSH 8.2 మరియు అంతకంటే ఎక్కువ అప్డేట్ చేసిన క్లయింట్లు మరియు సర్వర్లు మాత్రమే ఎన్క్రిప్షన్ కీలను ఉపయోగించగలుగుతారు. జట్టు
ssh –Vమీరు కమాండ్తో SSH యొక్క క్లయింట్ వెర్షన్ మరియు సర్వర్ వెర్షన్ని తనిఖీ చేయవచ్చుnc [servername] 22
ఫిబ్రవరి సంస్కరణకు రెండు కొత్త రకాల కీలు జోడించబడ్డాయి - ecdsa-sk మరియు ed25519-sk (సంబంధిత ప్రమాణపత్రాలతో పాటు). కీ ఫైల్ను రూపొందించడానికి, మీ ఎన్క్రిప్షన్ కీని చొప్పించి, ఆదేశాన్ని అమలు చేయండి:$ ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_skఇది పబ్లిక్ మరియు ప్రైవేట్ కీలను ఉత్పత్తి చేస్తుంది మరియు వాటిని మీ U2F పరికరంతో అనుబంధిస్తుంది. ఎన్క్రిప్షన్ కీ యాక్టివేట్ అయినప్పుడు డిస్క్లోని సీక్రెట్ కీ డిస్క్రిప్టర్ను డీక్రిప్ట్ చేయడం U2F పరికరంలోని రహస్య కీ యొక్క పని.
అదనంగా, ద్వితీయ కారకంగా, మీరు మీ కీలకు పాస్ఫ్రేజ్ని అందించవచ్చు.
రెసిడెంట్ కీ అనేది OpenSSH ద్వారా మద్దతిచ్చే మరొక రకమైన -sk కీ జనరేషన్. ఈ విధానంతో, హ్యాండిల్ U2F పరికరంలో నిల్వ చేయబడుతుంది మరియు అవసరమైనప్పుడు ఎన్క్రిప్షన్ కీతో దాన్ని కలిగి ఉండటానికి మిమ్మల్ని అనుమతిస్తుంది. మీరు ఆదేశంతో రెసిడెంట్ కీని సృష్టించవచ్చు:
$ ssh-keygen -t ecdsa-sk -O resident -f ~/.ssh/id_ecdsa_skఅప్పుడు, కొత్త పరికరంలో హ్యాండిల్ను తిరిగి మెమరీలో ఉంచడానికి, ఎన్క్రిప్షన్ కీని అతికించి, ఆదేశాన్ని అమలు చేయండి:
$ ssh-add -Kహోస్ట్కి కనెక్ట్ చేస్తున్నప్పుడు, మీరు ఇప్పటికీ ఎన్క్రిప్షన్ కీని సక్రియం చేయాలి.
- PIV+PKCS11 మరియు Yubikeyని ఉపయోగించండి. ఎన్క్రిప్షన్ కీని ఉపయోగించి SSHD యొక్క మునుపటి సంస్కరణలతో పరికరాలకు కనెక్ట్ చేయడానికి వేరే విధానం అవసరం. యుబికోకు PIV/PKCS2తో U11F+SSHని ఉపయోగించడంపై గైడ్ ఉంది. ఇది FIDO U2F వలె లేదు, మరియు ఈ పద్ధతి పనిచేసినప్పటికీ, దానిని ఏ మాయాజాలం నడిపిస్తుందో గుర్తించడానికి చాలా శ్రమ పడుతుంది.
- అనుకూల yubikey-agent ssh ఏజెంట్ని వర్తింపజేయండి. Filippo Valsorda Yubikeys కోసం SSH ఏజెంట్ రాశారు. ఇది పూర్తిగా కొత్తది మరియు తక్కువ ఫీచర్లను కలిగి ఉంది.
- టచ్ ID మరియు సెకీని ఉపయోగించండి. Sekey అనేది ఓపెన్ సోర్స్ SSH ఏజెంట్, ఇది Macలో సురక్షిత ఎన్క్లేవ్లో ప్రైవేట్ కీలను నిల్వ చేస్తుంది మరియు యాక్సెస్ ఫంక్షనాలిటీ కోసం టచ్ IDని ఉపయోగించడానికి అనుమతిస్తుంది.
- SSHలో ఒకే సైన్ని ఉపయోగించండి. ఈ పద్ధతిని సెటప్ చేయడంలో మీకు సహాయపడటానికి నేను ఒక ట్యుటోరియల్ వ్రాసాను. SSHలో సింగిల్ సైన్ యొక్క ప్రయోజనాల్లో ఒకటి మీ గుర్తింపు ప్రదాత యొక్క భద్రతా విధానాలను ప్రభావితం చేయగల సామర్థ్యం - బహుళ-కారకాల ప్రమాణీకరణ (MFA) కోసం మద్దతుతో సహా.
ఏజెంట్ ఫార్వార్డింగ్ యొక్క సురక్షిత ఉపయోగం
SHH ఏజెంట్ ఫార్వార్డింగ్ మీ స్థానిక పరికరం యొక్క SSH ఏజెంట్ను యాక్సెస్ చేయడానికి రిమోట్ హోస్ట్ని అనుమతిస్తుంది. మీరు ఏజెంట్ ఫార్వార్డింగ్ ప్రారంభించబడిన (సాధారణంగా ssh -A ద్వారా) SSHని ఉపయోగించినప్పుడు, కనెక్షన్లో రెండు ఛానెల్లు ఉంటాయి: మీ ఇంటరాక్టివ్ సెషన్ మరియు ఏజెంట్ ఫార్వార్డింగ్ కోసం ఛానెల్. ఈ ఛానెల్ ద్వారా, మీ స్థానిక SSH ఏజెంట్ సృష్టించిన Unix సాకెట్ రిమోట్ హోస్ట్కి కనెక్ట్ అవుతుంది. ఇది ప్రమాదకర పద్ధతి ఎందుకంటే రిమోట్ పరికరంలో రూట్ యాక్సెస్ ఉన్న వినియోగదారు మీ స్థానిక SSH ఏజెంట్కు యాక్సెస్ని పొందవచ్చు మరియు మిమ్మల్ని ఆన్లైన్లో నటించే అవకాశం ఉంది. ఓపెన్ SSH కిట్ నుండి ప్రామాణిక SSH ఏజెంట్ని ఉపయోగించి, ఇది జరిగిందని కూడా మీకు తెలియదు. U2F కీ (లేదా Sekey) కలిగి ఉండటం వలన మీరు బయట నుండి మీ SSH ఏజెంట్ని ఉపయోగించడానికి ఏవైనా ప్రయత్నాలను సమర్థవంతంగా నిరోధించడంలో సహాయపడుతుంది.
ఈ జాగ్రత్తతో కూడా, ఏజెంట్ ఫార్వార్డింగ్ని వీలైనంత తక్కువగా ఉపయోగించడం మంచిది. మీరు దీన్ని ప్రతి సెషన్లో ఉపయోగించకూడదు - ప్రస్తుత సెషన్కు ఇది అవసరమని మీకు ఖచ్చితంగా తెలిసినప్పుడు మాత్రమే ఏజెంట్ ఫార్వార్డింగ్ని ఉపయోగించండి.
హంగ్ సెషన్ నుండి నిష్క్రమిస్తున్నారు
నెట్వర్క్ అంతరాయం, ప్రోగ్రామ్లు నియంత్రణ లేకుండా ప్రవర్తించడం లేదా కీబోర్డ్ ఇన్పుట్ను నిరోధించే ఎస్కేప్ సీక్వెన్స్ వంటివన్నీ SSH సెషన్ను ముగించడానికి గల కారణాలు.
హంగ్ సెషన్ను ముగించడానికి అనేక మార్గాలు ఉన్నాయి:
- నెట్వర్క్ అంతరాయం ఏర్పడినప్పుడు స్వయంచాలకంగా నిష్క్రమించండి. మీరు మీ .ssh/configకి కింది వాటిని జోడించాలి:
ServerAliveInterval 5 ServerAliveCountMax 1ssh కనెక్షన్ని తనిఖీ చేయడానికి ప్రతి ServerAliveInterval సెకన్లలో రిమోట్ హోస్ట్కు ప్రతిధ్వనిని పంపుతుంది. ServerAliveCountMax కంటే ఎక్కువ ప్రతిధ్వనులు ప్రతిస్పందనను అందుకోకపోతే, ssh కనెక్షన్ని ముగించి సెషన్ నుండి నిష్క్రమిస్తుంది.
- సెషన్ నుండి బయటపడండి. ssh డిఫాల్ట్గా ~ (tilde) అక్షరాన్ని దాని నియంత్రణ అక్షరంగా ఉపయోగిస్తుంది. జట్టు ~. ఓపెన్ కనెక్షన్ను మూసివేస్తుంది మరియు మిమ్మల్ని టెర్మినల్కు తిరిగి పంపుతుంది. (ఎస్కేప్ సీక్వెన్సులు కొత్త లైన్లో మాత్రమే నమోదు చేయబడతాయి.) ~? ఈ సెషన్లో అందుబాటులో ఉన్న ఆదేశాల పూర్తి జాబితాను ప్రదర్శిస్తుంది. దయచేసి అంతర్జాతీయ కీబోర్డులపై ~ అక్షరాన్ని టైప్ చేయడానికి, మీరు ~ కీని రెండుసార్లు నొక్కవలసి రావచ్చు.
స్తంభింపచేసిన సెషన్లు ఎందుకు జరుగుతాయి? ఇంటర్నెట్ సృష్టించబడినప్పుడు, కంప్యూటర్లు చాలా అరుదుగా స్థలం నుండి మరొక ప్రదేశానికి మారాయి. మీరు ల్యాప్టాప్లను ఉపయోగించినప్పుడు మరియు బహుళ IPv4 WiFi నెట్వర్క్ల మధ్య మారినప్పుడు, మీ IP చిరునామా మారుతుంది. SSH TCP కనెక్షన్లపై ఆధారపడుతుంది, ఇది స్థిరమైన IP చిరునామాతో ముగింపు బిందువుపై ఆధారపడుతుంది కాబట్టి, మీరు నెట్వర్క్ల మధ్య మారినప్పుడల్లా, మీ SSH కనెక్షన్లు సాకెట్ హ్యాండిల్ను కోల్పోతాయి మరియు సమర్థవంతంగా వాటిని కోల్పోతాయి. మీ IP చిరునామా మారినప్పుడు, హ్యాండిల్ నష్టాన్ని గుర్తించడానికి మీ నెట్వర్క్ స్టాక్కు సమయం పడుతుంది. నెట్వర్క్ సమస్యలు సంభవించినప్పుడు, TCP కనెక్షన్లోని నోడ్లలో ఒకదానిని చాలా త్వరగా ముగించాలని మేము కోరుకోము. అందువల్ల, ప్రోటోకాల్ చివరకు ఇవ్వడానికి ముందు అనేక సార్లు డేటాను మళ్లీ పంపడానికి ప్రయత్నిస్తుంది. ఇంతలో, మీ టెర్మినల్లో సెషన్ స్తంభించినట్లు కనిపిస్తుంది. నెట్వర్క్లను మార్చేటప్పుడు పరికరాన్ని దాని ఇంటి చిరునామాను నిర్వహించడానికి అనుమతించే అనేక చలనశీలత-సంబంధిత లక్షణాలను IPv6 జోడిస్తుంది. బహుశా ఒక రోజు ఇది అలాంటి సమస్య కాదు.
రిమోట్ హోస్ట్లో నిరంతర టెర్మినల్ను ఎలా తెరిచి ఉంచాలి
వేర్వేరు నెట్వర్క్ల మధ్య కదులుతున్నప్పుడు లేదా కొంతకాలం డిస్కనెక్ట్ చేయాలనుకున్నప్పుడు మీ కనెక్షన్ను ఎలా నిర్వహించాలో రెండు విభిన్న విధానాలు ఉన్నాయి.
1. ప్రయోజనాన్ని పొందండి లేదా
మీరు నెట్వర్క్ల మధ్య మారినప్పుడు కూడా డ్రాప్ అవ్వని కనెక్షన్ మీకు నిజంగా అవసరమైతే, Mosh మొబైల్ షెల్ ఉపయోగించండి. ఇది సురక్షిత షెల్, ఇది మొదట SSH హ్యాండ్షేక్ని ఉపయోగిస్తుంది మరియు సెషన్ వ్యవధి కోసం దాని స్వంత ఎన్క్రిప్టెడ్ ఛానెల్కి మారుతుంది. ఇంటర్నెట్ అంతరాయాలు, మీ ల్యాప్టాప్ యొక్క IP చిరునామాను మార్చడం, తీవ్రమైన నెట్వర్క్ అంతరాయాలు మరియు మరిన్నింటిని తట్టుకోగల ప్రత్యేక, చాలా మన్నికైన మరియు సురక్షితమైన ఛానెల్ని Mosh ఈ విధంగా సృష్టిస్తుంది మరియు UDP కనెక్షన్ల మాయాజాలానికి ధన్యవాదాలు, అలాగే సమకాలీకరణ ప్రోటోకాల్ను మోష్ చేయండి.
Moshని ఉపయోగించడానికి మీరు దీన్ని క్లయింట్ మరియు సర్వర్ రెండింటిలోనూ ఇన్స్టాల్ చేయాలి మరియు మీ రిమోట్ హోస్ట్కి కనెక్ట్ కాని UPD ట్రాఫిక్ కోసం 60000-61000 పోర్ట్లను తెరవాలి. భవిష్యత్తులో, కనెక్ట్ చేయడానికి ఇది ఉపయోగించడానికి సరిపోతుంది mosh user@server.
మోష్ స్క్రీన్లు మరియు కీస్ట్రోక్ల స్థాయిలో పనిచేస్తుంది, ఇది క్లయింట్ మరియు SSH సర్వర్ మధ్య ప్రామాణిక ఇన్పుట్ మరియు అవుట్పుట్ యొక్క బైనరీ స్ట్రీమ్ను పంపడం కంటే అనేక ప్రయోజనాలను అందిస్తుంది. మేము స్క్రీన్లు మరియు కీస్ట్రోక్లను మాత్రమే సమకాలీకరించాల్సిన అవసరం ఉంటే, విరిగిన కనెక్షన్ని పునరుద్ధరించడం తర్వాత చాలా సులభం అవుతుంది. జరిగిన ప్రతిదానిని SSH బఫర్ చేసి పంపుతుంది, మోష్ కీస్ట్రోక్లను మాత్రమే బఫర్ చేయాలి మరియు టెర్మినల్ విండో యొక్క చివరి ఫ్రేమ్ను క్లయింట్తో సమకాలీకరించాలి.
2. tmux ఉపయోగించండి
మీరు "మీ ఇష్టం వచ్చినట్లు వచ్చి వెళ్లండి" మరియు రిమోట్ హోస్ట్లో టెర్మినల్ సెషన్ను నిర్వహించాలనుకుంటే, ఉపయోగించండి tmux. నేను tmuxని ప్రేమిస్తున్నాను మరియు దానిని అన్ని సమయాలలో ఉపయోగిస్తాను. మీ SSH కనెక్షన్కి అంతరాయం ఏర్పడితే, మీ tmux సెషన్కి తిరిగి రావడానికి మీరు మళ్లీ కనెక్ట్ చేసి ఎంటర్ చేయాలి tmux attach. అదనంగా, ఇది iOS టెర్మినల్లోని ట్యాబ్ల మాదిరిగానే ఇంట్రా-టెర్మినల్ ట్యాబ్లు మరియు ప్యానెల్లు మరియు టెర్మినల్లను ఇతరులతో పంచుకునే సామర్థ్యం వంటి అద్భుతమైన లక్షణాలను కలిగి ఉంది.
కొంతమంది తమ tmuxను Byobuతో మెరుగుపరచుకోవడానికి ఇష్టపడతారు. ఇది tmux వినియోగాన్ని గణనీయంగా మెరుగుపరిచి, అనేక కీబోర్డ్ షార్ట్కట్లను జోడించే ఒక ప్యాకేజీ. Byobuలో ఇవి ఉంటాయి: Ubuntuమరియు దీనిని హోమ్బ్రూ ద్వారా మ్యాక్లో ఇన్స్టాల్ చేయడం సులభం.
స్నేహితుడితో రిమోట్ టెర్మినల్ సెషన్ను భాగస్వామ్యం చేస్తోంది
కొన్నిసార్లు, మీ సర్వర్లలో సంక్లిష్ట సమస్యలను డీబగ్ చేస్తున్నప్పుడు, మీరు అదే గదిలో లేని వారితో SSH సెషన్ను భాగస్వామ్యం చేయాలనుకోవచ్చు. tmux ఈ పనికి సరైనది! ఇది కొన్ని దశలను మాత్రమే తీసుకుంటుంది:
- tmux మీ బాస్షన్ నోడ్లో లేదా మీరు పని చేయబోయే ఏదైనా సర్వర్లో ఇన్స్టాల్ చేయబడిందని నిర్ధారించుకోండి.
- మీరు ఇద్దరూ ఒకే ఖాతాను ఉపయోగించి పరికరంలోకి SSH చేయాలి.
- tmux సెషన్ను ప్రారంభించడానికి మీలో ఒకరు తప్పనిసరిగా tmuxని అమలు చేస్తూ ఉండాలి.
- మరొకటి tmux అటాచ్ని అమలు చేయాలి
- వోయిలా! మీకు షేర్డ్ టెర్మినల్ ఉంది.
మీకు మరింత అధునాతన బహుళ-వినియోగదారు tmux సెషన్లు కావాలంటే, షేర్డ్ టెర్మినల్ సెషన్లను చాలా సులభతరం చేసే tmux ఫోర్క్ అయిన tmateని ప్రయత్నించండి.
మూలం: www.habr.com
