ఉబుంటు 20.04లో SSH కీలను ఎలా జోడించాలి

SSH కీలను ఉపయోగించి మీ రిమోట్ ఉబుంటు సర్వర్‌కు సురక్షిత పాస్‌వర్డ్-తక్కువ లాగిన్‌ను సెటప్ చేయండి

SSH అనేది సురక్షిత క్లయింట్-సర్వర్ నెట్‌వర్క్ ప్రోటోకాల్, ఇది రిమోట్ సర్వర్‌కు కనెక్ట్ చేయడానికి మరియు కమ్యూనికేట్ చేయడానికి క్లయింట్ కంప్యూటర్‌కు సహాయపడుతుంది. SSH కనెక్షన్ టెర్మినల్‌లో టైప్ చేయబడిన ఆదేశాలు ఎన్‌క్రిప్టెడ్ ఛానెల్ ద్వారా రిమోట్ సర్వర్‌కు పంపబడుతుందని నిర్ధారిస్తుంది.

రిమోట్ సర్వర్‌కు కనెక్ట్ చేయడానికి రెండు రకాల ప్రమాణీకరణ మెకానిజమ్‌లు ఉపయోగించబడతాయి, పాస్‌వర్డ్ ఆధారిత ప్రమాణీకరణ (బ్రూట్-ఫోర్స్ దాడులకు గురయ్యే అవకాశం) మరియు SSH కీస్ ఆధారిత ప్రమాణీకరణ (ఇది చాలా సురక్షితమైనది).

SSH కీ-ఆధారిత ప్రమాణీకరణలో, క్లయింట్ కంప్యూటర్‌లో ఒక కీ జత జనరేట్ చేయబడుతుంది, దీనిని పబ్లిక్ కీ మరియు ప్రైవేట్ కీ అని పిలుస్తారు. ఈ పబ్లిక్ కీ యొక్క నకలు రిమోట్ సర్వర్‌లో అందుబాటులో ఉంచబడింది. క్లయింట్ సర్వర్‌కు కనెక్షన్ అభ్యర్థనను పంపినప్పుడు సర్వర్ యాదృచ్ఛిక స్ట్రింగ్‌ను ఉత్పత్తి చేస్తుంది మరియు పబ్లిక్ కీని ఉపయోగించి దానిని గుప్తీకరిస్తుంది. క్లయింట్ కంప్యూటర్‌లో అందుబాటులో ఉన్న ప్రైవేట్ కీని ఉపయోగించి మాత్రమే ఈ స్ట్రింగ్ డీక్రిప్ట్ చేయబడుతుంది. ప్రైవేట్ కీని కలిగి ఉన్న క్లయింట్లు మాత్రమే సర్వర్‌ని యాక్సెస్ చేయగలరని ఈ పద్ధతి నిర్ధారిస్తుంది.

ఈ గైడ్‌లో, ఉబుంటు 20.04 LTS సర్వర్‌లో SSH కీలను ఎలా సెటప్ చేయాలో చూద్దాం.

మీ కంప్యూటర్‌లో మీకు ఇప్పటికే ఏదైనా SSH కీ ఉందో లేదో చూడండి

మీ కంప్యూటర్‌లో SSH కీపెయిర్ ఇప్పటికే ఉందో లేదో తనిఖీ చేయడానికి ఈ ఆదేశాన్ని మీ టెర్మినల్‌లో టైప్ చేయండి.

ls -l ~/.ssh/id_*.pub

పై ఆదేశం తిరిగి వస్తే అటువంటి ఫైల్ లేదా డైరెక్టరీ లేదు లేదా ఎలాంటి పోలికలు దొరకలేదు, అప్పుడు SSH కీ జత ఉనికిలో లేదని అర్థం.

మీరు ఇప్పటికే SSH కీ జతని కలిగి ఉన్నట్లయితే, మీరు రెండు రిమోట్ సర్వర్‌లను యాక్సెస్ చేయడానికి ఒకే కీ జతని ఉపయోగించవచ్చు లేదా మీరు వేరే పేరుతో వేరే కీ జతని కూడా సృష్టించవచ్చు. తదుపరి దశకు వెళ్దాం మరియు రెండు సందర్భాలలో SSH కీలను ఎలా రూపొందించాలో చూద్దాం.

క్లయింట్ కంప్యూటర్‌లో SSH కీలను సృష్టిస్తోంది

మీ కంప్యూటర్‌లో కొత్త SSH కీ జతని రూపొందించడానికి, దిగువ చూపిన విధంగా ఆదేశాన్ని టైప్ చేయండి.

ssh-keygen

డిఫాల్ట్‌గా, SSH కీలు 2048 బిట్‌లో ఉంటాయి. మెరుగైన భద్రత కోసం, మీరు అధిక బిట్‌లతో SSH కీలను రూపొందించాలనుకుంటే, కింది ఆదేశాన్ని ఉపయోగించండి.

ssh-keygen -b 4096

కమాండ్ విజయవంతంగా నడుస్తుంటే, కింది సందేశం మీ స్క్రీన్‌పై అడుగుతుంది.

పబ్లిక్/ప్రైవేట్ ఆర్‌ఎస్‌ఏ కీ జతని ఉత్పత్తి చేస్తోంది. కీ (/home/harshit/.ssh/id_rsa)ని సేవ్ చేసే ఫైల్‌ను నమోదు చేయండి:

ఇప్పుడు మీ కంప్యూటర్‌లో మీకు ఇప్పటికే ఉన్న SSH కీ జత లేకుంటే కేవలం నొక్కండి నమోదు చేయండి, కానీ మీరు ఇప్పటికే SSH కీని కలిగి ఉన్నట్లయితే, క్రింద చూపిన విధంగా వేరొక ఫైల్ పేరుతో కీని సేవ్ చేయండి.

కీని (/home/your_name/.ssh/id_rsa) సేవ్ చేయడానికి ఫైల్‌ను నమోదు చేయండి: /home/your_name/.ssh/id_rsa_xxx

భర్తీ చేయండి xxx దిగువ చూపిన విధంగా తగిన పేరుతో ఫైల్ పేరు చివరన మరియు నొక్కండి నమోదు చేయండి.

కీని (/home/your_name/.ssh/id_rsa) సేవ్ చేయడానికి ఫైల్‌ను నమోదు చేయండి: /home/your_name/.ssh/id_rsa_client_1

తదుపరి ప్రాంప్ట్ మిమ్మల్ని ఏకపక్ష పొడవు యొక్క పాస్‌ఫ్రేజ్‌ని నమోదు చేయమని అడుగుతుంది, ఇది మీ పరికరంలో రెండు-స్థాయి భద్రతను నిర్ధారిస్తుంది.

పాస్‌ఫ్రేజ్‌ని నమోదు చేయండి (పాస్‌ఫ్రేజ్ కోసం ఖాళీ లేదు): అదే పాస్‌ఫ్రేజ్‌ని మళ్లీ నమోదు చేయండి:

ఈ పాస్‌ఫ్రేజ్‌ని నమోదు చేయడం వలన ఒక వ్యక్తి మీ ప్రైవేట్ కీకి యాక్సెస్‌ను పొందినప్పటికీ, అతను ఈ పాస్‌ఫ్రేజ్ లేకుండా మీ రిమోట్ సర్వర్‌ను యాక్సెస్ చేయలేరు.

మొత్తం ప్రక్రియ పూర్తయిన తర్వాత, కింది సందేశం మీ స్క్రీన్‌పై కనిపిస్తుంది.

ssh-keygen -b 4096 SSH కీ జెనరేషన్ మొత్తం ప్రక్రియ పూర్తయిన తర్వాత, కింది సందేశం మీ స్క్రీన్‌పై కనిపిస్తుంది.

SSH కీలు మీ సిస్టమ్‌లో రూపొందించబడ్డాయి. ఇప్పుడు రిమోట్ సర్వర్‌లో పబ్లిక్ కీని కాపీ చేసే సమయం వచ్చింది.

పబ్లిక్ కీని రిమోట్ ఉబుంటు సర్వర్‌కి కాపీ చేస్తోంది

పబ్లిక్ కీని రిమోట్ సర్వర్‌కి కాపీ చేయడానికి సులభమైన మరియు వేగవంతమైన పద్ధతిని ఉపయోగించడం ssh-copy-id వినియోగ. కానీ కొన్ని కారణాల వల్ల ఈ యుటిలిటీ మీ మెషీన్‌లో అందుబాటులో లేకుంటే, మీరు ఈ విభాగంలో అందించిన ఇతర పద్ధతులను కూడా ఉపయోగించవచ్చు.

ssh-copy-id యుటిలిటీని ఉపయోగించడం

ది ssh-copy-id యుటిలిటీ డిఫాల్ట్‌గా మీ ఉబుంటు మెషీన్‌లో అందుబాటులో ఉంటుంది, ఇది మీ పరికరం నుండి పబ్లిక్ కీని మీ రిమోట్ ఉబుంటు మెషీన్ యొక్క తగిన డైరెక్టరీకి కాపీ చేస్తుంది.

పబ్లిక్ ssh కీని కాపీ చేయడానికి క్రింద చూపిన విధంగా మీ టెర్మినల్‌లో ఆదేశాన్ని టైప్ చేయండి.

ssh-copy-id username@hostname

భర్తీ చేయండి వినియోగదారు పేరు మరియు హోస్ట్ పేరు మీ సర్వర్ యొక్క వినియోగదారు పేరు మరియు హోస్ట్-పేరుతో పై ఆదేశంలో.

మీరు మీ హోస్ట్‌కి మొదటిసారి కనెక్ట్ చేస్తుంటే, కింది సందేశం మీ టెర్మినల్‌లో కనిపిస్తుంది, టైప్ చేయండి అవును మరియు నొక్కండి నమోదు చేయండి.

హోస్ట్' 172.105.XX.XX (172.105.XX.XX)' యొక్క ప్రామాణికతను స్థాపించడం సాధ్యం కాదు. ECDSA కీ వేలిముద్ర xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx. మీరు ఖచ్చితంగా కనెక్ట్ చేయడాన్ని కొనసాగించాలనుకుంటున్నారా (అవును/కాదు)? అవును

ఇప్పుడు ది ssh-copy-id యుటిలిటీ పేరుతో ఫైల్ కోసం స్కాన్ చేస్తుంది id_rsa.pub ఇది పబ్లిక్ SSH కీని కలిగి ఉంటుంది. స్కానింగ్ ప్రక్రియ పూర్తయిన తర్వాత, దిగువ చూపిన విధంగా మీ రిమోట్ సర్వర్ యొక్క పాస్‌వర్డ్‌ను నమోదు చేయమని ఇది మిమ్మల్ని అడుగుతుంది. పాస్వర్డ్ టైప్ చేసి నొక్కండి నమోదు చేయండి.

/usr/bin/ssh-copy-id: INFO: ఇప్పటికే ఇన్‌స్టాల్ చేయబడిన /usr/bin/ssh-copy-id: INFO: 1 కీ(లు) కొత్త కీ(ల)తో లాగిన్ చేయడానికి ప్రయత్నిస్తోంది. ) ఇన్‌స్టాల్ చేయబడి ఉంది -- మీరు ఇప్పుడు ప్రాంప్ట్ చేయబడితే, కొత్త కీలను ఇన్‌స్టాల్ చేయమని రూట్@172.105.XX.XX పాస్‌వర్డ్:

కీని జోడించిన తర్వాత, కింది సందేశం మీ టెర్మినల్‌లో అవుట్‌పుట్‌గా కనిపిస్తుంది.

జోడించిన కీ(ల) సంఖ్య: 1 ఇప్పుడు మెషీన్‌లోకి లాగిన్ అవ్వడానికి ప్రయత్నించండి, దీనితో: "ssh '[email protected]'" మరియు మీరు కోరుకున్న కీ(లు) మాత్రమే జోడించబడ్డాయో లేదో తనిఖీ చేయండి.

మీరు మీ క్లయింట్ కంప్యూటర్‌లో బహుళ SSH కీలను కలిగి ఉన్నట్లయితే, మీ రిమోట్ కంప్యూటర్‌కు తగిన పబ్లిక్ కీని కాపీ చేయడానికి దిగువ చూపిన నమూనాలో ఆదేశాన్ని టైప్ చేయండి.

ssh-copy-id -i id_rsa_xxx.pub username@host

💡 చిట్కా

టెర్మినల్‌లో టైప్ చేస్తున్నప్పుడు ఫైల్ పేరు చివర .pub అని పెట్టడం మర్చిపోవద్దు.

పైపింగ్ పద్ధతి ద్వారా పబ్లిక్ కీని కాపీ చేయడం

టెర్మినల్ if కింది ఆదేశాన్ని టైప్ చేయండి ssh-copy-id యుటిలిటీ అందుబాటులో లేదు. ఈ కమాండ్ కొంచెం పొడవుగా అనిపించవచ్చు కానీ అది సరిగ్గా పని చేస్తుంది.

పిల్లి ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && టచ్ ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

భర్తీ చేయండి రిమోట్_యూజర్ పేరు మరియు సర్వర్_ఐపి_చిరునామా మీ వినియోగదారు పేరు మరియు IP చిరునామాతో.

మీరు మీ కంప్యూటర్‌లో బహుళ SSH కీలు అందుబాటులో ఉన్నట్లయితే, దాన్ని భర్తీ చేయండి id_rsa.pub మీకు నచ్చిన పబ్లిక్ SSH కీ ఫైల్‌తో. ఉదాహరణకి, id_rsa_client_1.pub.

ప్రాంప్ట్ చేసినప్పుడు రిమోట్ యూజర్ పాస్‌వర్డ్‌ని టైప్ చేసి నొక్కండి నమోదు చేయండి.

[email protected] పాస్‌వర్డ్:

మీరు పాస్వర్డ్ను టైప్ చేసిన తర్వాత, ది id_rsa.pub ఫైల్ కాపీ చేయబడుతుంది అధీకృత_కీలు రిమోట్ సర్వర్ యొక్క ఫైల్.

పబ్లిక్ కీని మాన్యువల్‌గా కాపీ చేస్తోంది

పాస్‌వర్డ్ ప్రమాణీకరణ ద్వారా మీ రిమోట్ సిస్టమ్‌కు యాక్సెస్ లేనప్పుడు ఈ పద్ధతిని ఉపయోగించండి.

తెరవండి id_rsa.pub ఉపయోగించి ఫైల్ పిల్లి టెర్మినల్‌లో ఆదేశం. మీరు దీన్ని టెక్స్ట్ ఎడిటర్ నుండి కూడా తెరవవచ్చు, ఫైల్ యొక్క కంటెంట్‌ను కాపీ చేయడమే దీని ఉద్దేశ్యం.

పిల్లి ~/.ssh/id_rsa.pub

ఫైల్ యొక్క కంటెంట్ క్రింద చూపిన విధంగా కనిపిస్తుంది.

ssh-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6Hy / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH your_name @ your_PC

ఇప్పుడు, మీ రిమోట్ సర్వర్‌కు లాగిన్ చేయండి మరియు దిగువ చూపిన ఆదేశాన్ని ఉపయోగించి కాపీ చేసిన కంటెంట్‌ను అతికించండి. భర్తీ చేయండి పైన_స్ట్రింగ్ కాపీ చేసిన కంటెంట్‌తో.

echo above_string >> ~/.ssh/authorized_keys

బహుళ SSH కీలను కాన్ఫిగర్ చేస్తోంది (ఐచ్ఛికం)

ఈ దశ వారి క్లయింట్ కంప్యూటర్‌లో బహుళ SSH కీల సెటప్ ఉన్న వ్యక్తుల కోసం ఉద్దేశించబడింది. మీకు ఒకే ఒక SSH కీ సెటప్ ఉంటే ఈ విభాగాన్ని దాటవేయండి.

బహుళ SSH కీలను నిర్వహించడానికి, మేము ఇప్పుడు ఒక సృష్టిస్తాము config ఫైల్ లోపల .ssh క్రింద చూపిన ఆదేశాన్ని ఉపయోగించి డైరెక్టరీ.

cd ~/.ssh vim config

టైప్ చేయండి i కింది ఉదాహరణలో చూపిన విధంగా కమాండ్ మోడ్‌లోకి ప్రవేశించి, బహుళ హోస్ట్‌ల వివరాలను టైప్ చేయండి:

హోస్ట్ రిమోట్-ఉబుంటు-సర్వర్ హోస్ట్‌నేమ్ 172.105.XX.XX యూజర్ రూట్ ఐడెంటిటీఫైల్ ~/.ssh/id_rsa_client_1 హోస్ట్ రిమోట్-ఉబుంటు-సర్వర్ హోస్ట్‌నేమ్ 172.106.XX.XX యూజర్ రూట్ ఐడెంటిటీఫైల్ _2.

అదేవిధంగా, ఇతర రిమోట్ సర్వర్లు మరియు వాటి కీల వివరాలను టైప్ చేయండి. ప్రక్రియ పూర్తయిన తర్వాత నొక్కండి Esc మరియు :wq సేవ్ మరియు నిష్క్రమించడానికి.

క్లయింట్ కంప్యూటర్‌లో ఒకే లేదా బహుళ SSH కీలను కలిగి ఉండటం కోసం ఇప్పుడు తదుపరి ప్రక్రియలు ఒకే విధంగా ఉంటాయి.

SSH కీలను ఉపయోగించి మీ రిమోట్ సర్వర్‌కు లాగిన్ చేయండి

మీ పబ్లిక్ కీని కాపీ చేసే ప్రక్రియ పూర్తయిన తర్వాత, దిగువ చూపిన విధంగా ఆదేశాన్ని టైప్ చేయడం ద్వారా మీ రిమోట్ సర్వర్‌కు లాగిన్ చేయండి.

ssh remote_username@server_ip_address

కీ పెయిర్‌ని ఉత్పత్తి చేస్తున్నప్పుడు మీరు పాస్‌ఫ్రేజ్‌ని అందించినట్లయితే, దాన్ని నమోదు చేయమని మీరు ప్రాంప్ట్ చేయబడతారు. ప్రామాణీకరణ ప్రక్రియ పూర్తయిన తర్వాత కొత్త సెషన్ తెరవబడుతుంది.

మీరు ఇప్పుడు మీ రిమోట్ సర్వర్‌లో SSH కీల ఆధారిత ప్రమాణీకరణను విజయవంతంగా కాన్ఫిగర్ చేసారు. కానీ పాస్‌వర్డ్ ఆధారిత ప్రమాణీకరణ ఇప్పటికీ మీ సర్వర్‌లో సక్రియంగా ఉంది, దీని అర్థం మీ రిమోటర్ సర్వర్ ఇప్పటికీ బ్రూట్-ఫోర్స్ దాడులకు గురవుతుంది.

కాబట్టి ఇప్పుడు మేము మా రిమోట్ సర్వర్ నుండి పాస్‌వర్డ్ ఆధారిత లాగిన్ మెకానిజంను పూర్తిగా నిలిపివేస్తాము.

పాస్‌వర్డ్ ఆధారిత లాగిన్ మెకానిజమ్‌ని నిలిపివేయండి

మీరు ఏవైనా మార్పులు చేసే ముందు, మీ రిమోట్ ఖాతా కోసం రూట్ వినియోగదారు లేదా ఏదైనా సుడో ప్రారంభించబడిన వినియోగదారు SSH కీ-ఆధారిత ప్రమాణీకరణ వ్యవస్థను ఉపయోగించి మీ సర్వర్‌కు ప్రాప్యత కలిగి ఉన్నారని నిర్ధారించుకోండి. ఈ దశ పాస్‌వర్డ్-ఆధారిత లాగిన్‌ను పూర్తిగా లాక్ చేస్తుంది లేదా నిలిపివేస్తుంది కాబట్టి కనీసం ఒక వినియోగదారు రూట్ అధికారాలు SSH కీ ద్వారా సర్వర్‌కు ప్రాప్యత కలిగి ఉండటం చాలా కీలకం.

మీ రిమోట్ ఉబుంటు సర్వర్‌కు లాగిన్ చేసి, క్రింద చూపిన ఆదేశాన్ని టైప్ చేయండి.

sudo vim /etc/ssh/sshd_config
  • నొక్కండి Esc, / మరియు ‘Password Authentication’ అని టైప్ చేసి నొక్కండి ఎంటర్.
  • ఇప్పుడు నొక్కండి i మరియు ‘Password Authentication yes’ విలువను ‘Password Authentication no’కి మార్చండి.
  • నొక్కండి Esc మరియు 'ChallengeResponse Authentication', 'UsePAM'ని కనుగొనడానికి మరియు వాటి విలువలను మార్చడానికి పై ప్రక్రియను పునరావృతం చేయండి సంఖ్య అలాగే.
పాస్‌వర్డ్ అథెంటికేషన్ లేదు ఛాలెంజ్ రెస్పాన్స్ ఆథెంటికేషన్ లేదు యూజ్‌పామ్ నం

అన్ని విలువలు సెట్ చేయబడిన తర్వాత సంఖ్య, నొక్కండి Esc, రకం :wq మరియు హిట్ ఎంటర్.

అన్ని మార్పులను సక్రియం చేయడానికి పునఃప్రారంభించండి ssh దిగువ ఆదేశాన్ని ఉపయోగించి సేవ.

sudo systemctl ssh పునఃప్రారంభించండి

ఇప్పుడు మీ కంప్యూటర్‌లో కొత్త టెర్మినల్ విండోను తెరిచి, ప్రస్తుత సెషన్‌ను మూసివేయడానికి ముందు మీ SSH కీ ప్రమాణీకరణ సరిగ్గా పని చేస్తుందో లేదో ధృవీకరించండి.

ధృవీకరణ ప్రక్రియ పూర్తయిన తర్వాత, నడుస్తున్న అన్ని సెషన్‌లను మూసివేయండి.

మేము ఇప్పుడు మా ఉబుంటు 20.04 సర్వర్‌లో SSH కీ-ఆధారిత ప్రమాణీకరణను విజయవంతంగా కాన్ఫిగర్ చేసాము. ఇప్పుడు ఎవరూ పాస్‌వర్డ్ ఆధారిత లాగిన్ మెకానిజం ఉపయోగించి మీ సర్వర్‌కి లాగిన్ చేయలేరు.