SSH హార్డెనింగ్: కీలు, పోర్ట్, పరిమితులు
sshd ఎలా కాన్ఫిగర్ చేయాలి: కీ-మాత్రమే లాగిన్, యూజర్లు మరియు అడ్రస్ల పరిమితి, పోర్ట్ మార్చడం, మరియు ఆ ప్రక్రియలో యాక్సెస్ ఎలా కోల్పోకూడదు.
23 ఆగస్టు, 2026న నవీకరించబడింది
SSH అనేది మీరు ప్రతిరోజూ ఉపయోగించే మెషీన్లోకి ప్రవేశించడానికి ఉన్న ఏకైక మార్గం, అలాగే ఆటోమేటెడ్ బ్రూట్-ఫోర్స్ దాడుల ప్రధాన లక్ష్యం. మీరు దీన్ని ఒకసారి కాన్ఫిగర్ చేస్తే, ఆ తర్వాత ఎటువంటి శ్రద్ధ అవసరం లేదు.
అన్ని మార్పులను ప్రత్యేక ఫైల్ /etc/ssh/sshd_config.d/99-hardening.conf లో చేయండి — అలా చేస్తే ప్యాకేజీ అప్డేట్ మీ పనిని ఓవర్రైట్ చేసి మిమ్మల్ని యాక్సెస్ లేకుండా చేయదు.
పాస్వర్డ్లకు బదులుగా కీలు
PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
PermitEmptyPasswords no
వర్తించే ముందు, కీ నిజంగా పనిచేస్తుందని నిర్ధారించుకోండి: వేరే విండోలో దానితో లాగిన్ అవ్వండి. /hosting/vds/m/<id> ప్యానెల్లోని “Access” ట్యాబ్లో జోడించిన కీలు root యూజర్కు వెళ్తాయి; ఇతర యూజర్ల కోసం మీరు వాటిని స్వయంగా ~/.ssh/authorized_keys లో పెట్టాలి.
మీ వైపు కీని జనరేట్ చేయడం:
ssh-keygen -t ed25519 -C "work laptop"
ed25519 అనేది RSA కంటే చిన్నది మరియు వేగవంతమైనది. మీ టూల్ దీన్ని సపోర్ట్ చేయకపోతే, కనీసం 4096 బిట్ల పొడవుతో rsa ఉపయోగించండి.
ఎవరు లాగిన్ అవ్వగలరు
PermitRootLogin prohibit-password
AllowUsers artem deploy
MaxAuthTries 3
LoginGraceTime 20
ClientAliveInterval 300
ClientAliveCountMax 2
పాస్వర్డ్లను నిలిపివేసిన తర్వాత AllowUsers అత్యంత ప్రభావవంతమైన నియమం: ఇతరుల పేర్లను బ్రూట్-ఫోర్స్ చేయడం వెంటనే ఆగిపోతుంది. root గురించి మరింత — పాస్వర్డ్ ద్వారా root లాగిన్ను నిలిపివేయండి.
మీరు స్థిరమైన ప్రదేశం నుండి పనిచేస్తుంటే, అడ్రస్ పరిమితి:
Match Address 203.0.113.5
PermitRootLogin yes
పోర్ట్ను మార్చడం
SSH ను 22 నుండి ప్రామాణికం కాని పోర్ట్కు మార్చడం లక్ష్యంగా చేసుకున్న దాడి నుండి మిమ్మల్ని రక్షించదు, కానీ మీ లాగ్లలో ఆటోమేటెడ్ స్కానర్ల నుండి వచ్చే దాదాపు మొత్తం శబ్దాన్ని తొలగిస్తుంది.
Port 2222
దశల క్రమం ఖచ్చితంగా ఇలా ఉండాలి:
ufw allow 2222/tcp
sshd -t
systemctl restart ssh
ssh -p 2222 artem@<address>
ufw delete allow 22/tcp
ఫైర్వాల్ నియమం రీస్టార్ట్కు ముందు రావాలి, పాత నియమాన్ని తొలగించడం కొత్త పోర్ట్లో విజయవంతంగా లాగిన్ అయిన తర్వాత మాత్రమే. పోర్ట్లు కూడా చూడండి.
వర్తించడం మరియు ధృవీకరించడం
sshd -t
sshd -T | grep -Ei "passwordauth|permitroot|allowusers|port"
systemctl restart ssh
sshd -t సింటాక్స్ను తనిఖీ చేస్తుంది, sshd -T తుది ప్రభావవంతమైన కాన్ఫిగరేషన్ను చూపిస్తుంది — మీరు ఫైల్లో రాసినది కాదు, అదే.
మీరు కాన్ఫిగర్ చేస్తున్నప్పుడు మీ ప్రస్తుత సెషన్ను తెరిచి ఉంచండి. అది sshd రీస్టార్ట్ను తట్టుకుంటుంది, దాని ద్వారా మీరు విఫలమైన మార్పును వెనక్కి తిప్పవచ్చు. మీరు నిజంగా లాక్ అవుట్ అయితే — ప్యానెల్లోని “Console” ట్యాబ్ SSH నుండి స్వతంత్రంగా పనిచేస్తుంది.
సాధారణ పొరపాట్లు
| పొరపాటు | పరిణామం | పరిష్కారం |
|---|---|---|
| కీని పరీక్షించకుండా పాస్వర్డ్లను నిలిపివేయడం | నెట్వర్క్ యాక్సెస్ పూర్తిగా పోవడం | ప్యానెల్ కన్సోల్ ద్వారా లాగిన్ అయి సెట్టింగ్ను పునరుద్ధరించండి |
sshd_config.d నుండి వచ్చిన లైన్ పైన ప్రధాన ఫైల్లో మార్పు చేయడం | సెట్టింగ్ అమలులోకి రాదు | sshd -T తో తనిఖీ చేయండి |
| ufw నియమం లేకుండా పోర్ట్ను మార్చడం | యాక్సెస్ పోవడం | ముందు నియమం, తర్వాత పోర్ట్ |
~/.ssh పై 700 కంటే విస్తృతమైన అనుమతులు | కీ నిశ్శబ్దంగా విస్మరించబడుతుంది | chmod 700 ~/.ssh, chmod 600 authorized_keys |
మీ స్వంత పేరు లేకుండా AllowUsers | మీరే లాక్ అవుట్ అవుతారు | ప్యానెల్ కన్సోల్, ఫైల్ను ఎడిట్ చేయండి |
sshd_configలో, పారామీటర్ మొదట కనిపించిన చోటే గెలుస్తుంది, మరియుsshd_config.dనుండి వచ్చే ఫైల్లు ప్రారంభంలో చేర్చబడతాయి. కాబట్టి ఫైల్ను చదవడం బదులుsshd -Tతో ఫలితాన్ని ధృవీకరించండి.
మిగిలిన బ్రూట్-ఫోర్స్ శబ్దాన్ని fail2ban తొలగిస్తుంది.