SSD Nodes Learn Hosting plans →
கல்வி வழிகாட்டிகள் Matt Connorஆல் Matt Connor · புதுப்பிக்கப்பட்டது 2026-08-07

SSH keys-ஐ பாதுகாப்பாக நிர்வகிப்பது எப்படி?

Ubuntu 24.04 மற்றும் Linux சர்வர்களில் SSH keys-ஐ எவ்வாறு சரியாக நிர்வகிப்பது என்பதை அறியுங்கள். ed25519 பயன்பாடு, கோப்பு அனுமதிகள் மற்றும் Host config முறைகளை இந்த வழிகாட்டி

SSH keys எவ்வாறு செயல்படுகின்றன

SSH key என்பது இரண்டு கோப்புகளைக் கொண்ட ஒரு ஜோடி ஆகும்: உங்கள் சாதனத்தில் பாதுகாப்பாக இருக்கும் private key மற்றும் நீங்கள் நுழைய விரும்பும் ஒவ்வொரு server-லும் நீங்கள் பதிவேற்ற வேண்டிய public key. நீங்கள் இணைப்பை ஏற்படுத்தும்போது, server ஒரு சவாலை (challenge) அனுப்பும்; அதற்குப் பொருத்தமான private key-ஆல் மட்டுமே பதிலளிக்க முடியும். Private key உங்கள் சாதனத்தை விட்டு வெளியேறாது என்பதால், எந்த ரகசியத் தகவலும் network வழியாகப் பரிமாறப்படாது; ஒரு server breached நிலைக்குச் சென்றாலும், திருடுவதற்கு அங்கே பயனுள்ள தகவல்கள் இருக்காது. இதனால்தான் கடவுச்சொற்களை விட (passwords) SSH keys பாதுகாப்பானவை. SSH keys-ஐச் சரியாக நிர்வகிப்பது நான்கு பழக்கங்களைச் சார்ந்தது: ஒவ்வொரு சாதனத்திற்கும் ஒரு தனி key, sshd கோரும் சரியான file permissions, விருப்பங்களை மீண்டும் மீண்டும் தட்டச்சு செய்வதைத் தவிர்க்க ஒரு ~/.ssh/config கோப்பு, மற்றும் ஒரு laptop தொலைந்துபோகும் நாளில் அந்த key-ஐ எவ்வாறு நீக்குவது என்பதை அறிந்திருப்பது.

இந்த வழிகாட்டி Ubuntu 24.04-ல் இந்த நான்கு பழக்கங்களையும் விளக்குகிறது, இருப்பினும் இதில் உள்ளவை அனைத்தும் எந்தவொரு Linux server-க்கும் மற்றும் சமீபத்திய OpenSSH-க்கும் பொருந்தும்.

தொடங்குவதற்கு முன் ஒரு சொல்லகராதி குறிப்பு, ஏனெனில் இது பெரிய தவறுகளைத் தவிர்க்க உதவும். Public key ரகசியமானது அல்ல. நீங்கள் அதை ஒரு ticket-ல் ஒட்டலாம், மின்னஞ்சல் மூலம் அனுப்பலாம் அல்லது பொதுவெளியில் வெளியிடலாம்; அதைப் பயன்படுத்தி யாராலும் server-க்குள் நுழைய முடியாது. Private key மட்டுமே ரகசியமானது. அந்த கோப்பை நகலெடுத்து, அதற்கு passphrase இருந்தால் அதையும் அறிந்த எவரும், உங்கள் server-களைப் பொறுத்தவரை நீங்களாகவே கருதப்படுவார்கள்.

ஒரு key-ஐ உருவாக்குதல்: ed25519 என்பதே சரியான default

Server-ல் அல்லாமல், உங்கள் சொந்த கணினியில், பின்வரும் கட்டளையை இயக்கவும்:

ssh-keygen -t ed25519 -C "laptop"

-t ed25519 என்பது key-ன் வகையைத் தேர்ந்தெடுக்கிறது. Ed25519 என்பது நவீன default ஆகும்: இந்த keys அளவில் சிறியவை, வேகமானவை, மேலும் 2014-க்கு பிறகு வந்த அனைத்து OpenSSH releases-லும் ஆதரிக்கப்படுகின்றன. Ed25519-ஐ ஆதரிக்காத பழைய சாதனங்களுடன் தொடர்பு கொள்ள வேண்டியிருக்கும் போது மட்டுமே ssh-keygen -t rsa -b 4096-க்கு மாறவும். -C "laptop" ஒரு comment-ஐ அமைக்கிறது. இந்த comment எந்தவொரு cryptographic செயல்பாட்டையும் செய்யாது, ஆனால் இரண்டு ஆண்டுகளுக்குப் பிறகு server-ன் authorized_keys கோப்பில் இந்த key-ஐ அடையாளம் காண இது உதவும், எனவே இந்த key எந்த சாதனத்தில் உள்ளதோ அதன் பெயரை இடவும்.

ssh-keygen key-ஐ எங்கு சேமிக்க வேண்டும் என்று கேட்கும். Default-ஆக உள்ள ~/.ssh/id_ed25519-ஐ ஏற்கவும். பின்னர் அது ஒரு passphrase-ஐக் கேட்கும். ஒன்றை அமைக்கவும்; தினசரி பயன்பாட்டில் இது எந்த சிரமத்தையும் தராது என்பதை கீழே உள்ள passphrase பகுதி விளக்குகிறது. இறுதியில் உங்களுக்கு இரண்டு கோப்புகள் கிடைக்கும்: ~/.ssh/id_ed25519 என்பது private key, மற்றும் ~/.ssh/id_ed25519.pub என்பது public key. Public key-ன் பாதியை இவ்வாறு பார்க்கவும்:

cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF3k2s0vQx7GdKQhX1yBz... laptop

இது ஒரே வரியில் இருக்கும்: key-ன் வகை, key-ன் விவரங்கள் மற்றும் உங்கள் comment. அந்த வரியே உங்கள் servers-ல் சேர்க்கப்பட வேண்டியது.

ஒவ்வொரு server-க்கும் அல்ல, ஒவ்வொரு device-க்கும் ஒரு key

அனைவரும் முதலில் கேட்கும் கேள்வி: ஒவ்வொரு server-க்கும் புதிய key தேவைப்படுமா? இல்லை. நீங்கள் பயன்படுத்தும் ஒவ்வொரு device-க்கும் ஒரு key-ஐ உருவாக்குங்கள். அந்த device எந்தெந்த server-களை அணுக வேண்டுமோ, அந்த server-களில் இந்த public key-ஐச் சேர்க்கவும். இந்த key அந்த device-ஐ அடையாளம் காட்டுகிறது. ஒவ்வொரு server-லும் உள்ள authorized_keys கோப்பு, அனுமதிக்கப்பட்ட device-களின் பட்டியலாகும்.

இந்த முறையே சிறப்பாகச் செயல்படும்; மற்ற முறைகள் தோல்வியடையும். ஒரு server-க்கு ஒரு key என்று வைத்தால், இருபது server-களைக் கொண்ட ஒரு laptop-ல் இருபது private keys-களை வைத்திருக்க வேண்டியிருக்கும். இதில் எது எந்த server-க்கானது என்று குழப்பம் ஏற்படும். உங்கள் அனைத்து device-களுக்கும் ஒரே key-ஐப் பயன்படுத்துவது இன்னும் ஆபத்தானது: உங்கள் laptop திருடப்பட்டால், அந்த laptop-ஐ மட்டும் உங்களால் நீக்க முடியாது. ஏனெனில், உங்கள் desktop-ம் அதே private key-ஐக் கொண்டிருப்பதால், அதையும் சேர்த்து லாக் அவுட் செய்ய வேண்டியிருக்கும். இதனால், எல்லா இடங்களிலும் key-ஐ மாற்றி, மீண்டும் அனைத்து device-களுக்கும் விநியோகிக்க வேண்டிய கட்டாயம் ஏற்படும்.

ஒவ்வொரு device-க்கும் ஒரு key என்ற முறையில், laptop தொலைந்தால் ஒவ்வொரு server-லும் ஒரு வரியை மட்டும் நீக்கினால் போதும்: authorized_keys கோப்பிலிருந்து அந்த laptop-ன் வரியை நீக்கிவிடுங்கள், மற்ற device-கள் தொடர்ந்து இயங்கும். -C மூலம் நீங்கள் அமைக்கும் comment, அந்த வரியை எளிதாகக் கண்டறிய உதவும்.

இந்த முறையின் அடிப்படை விதி: ஒரு private key ஒரு device-ல் உருவாக்கப்பட்டு, அந்த device-உடனேயே முடிவுக்கு வர வேண்டும். ஒரு private key-ஐ மற்றொரு machine-க்கு ஒருபோதும் நகலெடுக்காதீர்கள், server-ல் எங்கும் பதிவேற்றாதீர்கள். புதிய device-க்கு அணுகல் தேவைப்படும்போது, அதில் புதிய key-ஐ உருவாக்குங்கள்.

Public key-ஐ server-ல் பதிவேற்றுதல்

இதற்கான எளிதான வழி ssh-copy-id ஆகும், இது OpenSSH-உடன் சேர்ந்து வருகிறது:

ssh-copy-id matt@10.0.0.10

இது தற்போது செயல்பாட்டில் உள்ள ஏதேனும் ஒரு முறையைப் பயன்படுத்தி (பொதுவாக password) login செய்யும். உங்கள் public key-ஐ server-ல் உள்ள ~/.ssh/authorized_keys கோப்பில் சேர்க்கும். தேவையான directory மற்றும் கோப்பு இல்லையெனில், அவற்றைச் சரியான permissions-உடன் இதுவே உருவாக்கிவிடும். புதிய SSH session-ஐத் தொடங்கி இதைச் சோதிக்கவும்: server உங்கள் account password-ஐக் கேட்காமல் உள்ளே அனுமதிக்க வேண்டும். உங்கள் key-க்கு passphrase இருந்தால், உங்கள் கணினி அதைக் கேட்கலாம்; அந்த prompt உள்ளூர் கணினியுடையது, server password அல்ல.

Password login ஏற்கனவே முடக்கப்பட்டிருந்தால், ssh-copy-id-ஆல் உள்ளே நுழைய முடியாது. எனவே, அந்த வரியை நீங்களே கைமுறையாகச் சேர்க்க வேண்டும். இன்னும் செயல்பாட்டில் உள்ள ஒரு session அல்லது உங்கள் provider-ன் web console மூலம் login செய்து, server-ல் இதை இயக்கவும்:

mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF3k2s0vQx7GdKQhX1yBz... laptop" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

உங்கள் உண்மையான public key-ஐ மேற்கோள் குறிகளுக்குள் (quotes) ஒட்டவும்; இது id_ed25519.pub-லிருந்து பெறப்பட்ட முழுமையான ஒற்றை வரியாக இருக்க வேண்டும். authorized_keys என்பது ஒரு வரிக்கு ஒரு public key என்ற அடிப்படையில் அமையும்; இதுவே முழுமையான access database ஆகும்: ஒரு சாதனத்தைச் சேர்க்க அந்த வரியைச் சேர்க்க வேண்டும், நீக்க அந்த வரியை நீக்க வேண்டும். புதிய server-ல், புதிய VPS-ன் முதல் 10 நிமிடங்கள் என்ற பகுதியில், password login-ஐ முடக்குவதற்கு முன்பாகவே இந்தச் செயலைச் செய்ய வேண்டும்.

key login-ஐ செயலிழக்கச் செய்யும் அனுமதிகள்

Key login தோல்வியடைவதற்கு இதுவே மிக பொதுவான காரணம், மேலும் இது client பக்கத்தில் எந்த அறிவிப்பும் இன்றி அமைதியாகத் தோல்வியடையும். Ubuntu 24.04-ல் sshd இயல்பாகவே StrictModes yes உடன் இயங்குகிறது, அதாவது பிற பயனர்கள் திருத்தக்கூடிய authorized_keys கோப்பைப் பயன்படுத்த அது மறுத்துவிடும். அந்த கோப்பு, ~/.ssh அடைவு (directory), அல்லது உங்கள் home அடைவு ஆகியவற்றை உங்களைத் தவிர வேறு யாராவது எழுத முடியும் என்றால், sshd உங்கள் key-ஐப் புறக்கணித்துவிட்டு, எந்த விளக்கமும் இன்றி கடவுச்சொல்லைக் கேட்கும். (Ubuntu-வின் OpenSSH ஒரு குறிப்பிட்ட சூழலை மட்டும் அனுமதிக்கும்: உங்கள் சொந்த private group-க்கு மட்டும் group writable அனுமதி இருப்பது, இதில் வேறு யாரும் இருக்கக்கூடாது. இதைச் சார்ந்திருக்க வேண்டாம்; கீழே உள்ள முறைகளையே பின்பற்றவும்.) இதற்கான காரணம் server-ன் log-ல் மட்டுமே தெரியும்:

sudo grep 'Authentication refused' /var/log/auth.log

rsyslog இல்லாத minimal image-ல் auth.log இருக்காது; அதே வரி journal-ல் இருக்கும்: sudo journalctl -u ssh | grep 'Authentication refused'.

Authentication refused: bad ownership or modes for file /home/matt/.ssh/authorized_keys

இதற்கான தீர்வு இரண்டு அனுமதி மாற்றங்கள் மற்றும் ownership சரிபார்ப்பு ஆகும், இவற்றை பாதிக்கப்பட்ட பயனர் கணக்கில் server-ல் இயக்க வேண்டும்:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R matt:matt ~/.ssh

நினைவில் கொள்ள வேண்டிய விதி: .ssh அடைவுக்கு 700, அதற்குள் உள்ள அனைத்திற்கும் 600. உங்கள் சொந்த கணினியிலும் இதே எண்களே பொருந்தும், ஏனெனில் client-ம் இதைச் சரிபார்க்கும். பிற பயனர்கள் வாசிக்கக்கூடிய private key இருந்தால், ssh அந்த key-ஐப் பயன்படுத்த மறுத்துவிடும், இந்த முறை பிழை தெளிவாகத் தெரியும்:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/matt/.ssh/id_ed25519' are too open.

chmod 600 ~/.ssh/id_ed25519 இதைச் சரிசெய்யும்.

~/.ssh/config: விருப்பங்களை மீண்டும் மீண்டும் தட்டச்சு செய்வதைத் தவிர்க்கவும்

உங்கள் கணினியில் உள்ள ஒரு ~/.ssh/config கோப்பு, ஒவ்வொரு server-க்கும் ஒரு சுருக்கமான பெயரை வழங்கவும், நீங்கள் அடிக்கடி தட்டச்சு செய்யும் விருப்பங்களை நினைவில் கொள்ளவும் உதவுகிறது. இதை 600 அனுமதிகளுடன் உருவாக்கி, ஒவ்வொரு server-க்கும் ஒரு Host தொகுப்பைச் சேர்க்கவும்:

Host web1
    HostName 10.0.0.10
    User matt
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes

Host db1
    HostName 10.0.0.11
    User matt
    Port 2222
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes

இப்போது ssh web1 என்பது ssh -p 22 matt@10.0.0.10-க்கு மாற்றாகச் செயல்படுகிறது. இந்த ஒரே சுருக்கமான பெயர் scp, rsync, மற்றும் git ஆகியவற்றிலும் வேலை செய்யும், ஏனெனில் இவை அனைத்தும் இந்தக் கோப்பைப் படிக்கின்றன. HostName என்பது உண்மையான முகவரி, User என்பது பயனர் பெயரைத் தட்டச்சு செய்வதைத் தவிர்க்க உதவுகிறது, மற்றும் IdentityFile என்பது எந்த key-ஐப் பயன்படுத்த வேண்டும் என்பதை உறுதிப்படுத்துகிறது.

IdentitiesOnly yes ஒரு தனி விளக்கத்திற்கு உரியது, ஏனெனில் இது குழப்பமான ஒரு தோல்வியைத் தவிர்க்கிறது. உங்கள் agent-ல் பல key-கள் இருக்கும்போது, client அவற்றை ஒவ்வொன்றாக வழங்குகிறது, மேலும் server ஒவ்வொரு முயற்சியையும் தோல்வியுற்ற முயற்சியாகக் கணக்கிடுகிறது. அதிகப்படியான key-கள் இருந்தால், சரியான key-ஐ முயற்சிக்கும் முன்பே உங்களுக்கு Received disconnect: Too many authentication failures பிழை ஏற்படலாம். IdentitiesOnly yes, IdentityFile-ல் குறிப்பிடப்பட்டுள்ள key-ஐ மட்டுமே client வழங்கும்படி செய்கிறது, எனவே இந்தத் தோல்வி ஏற்படாது.

Passphrases மற்றும் ssh-agent

Passphrase என்பது வட்டில் உள்ள private key கோப்பை குறியாக்க (encrypt) செய்கிறது. இது இல்லையெனில், கோப்பை நகலெடுக்கும் எவரும் அதை உடனடியாகப் பயன்படுத்த முடியும்; இது இருந்தால், passphrase-ஐ ஊகிக்கும் வரை திருடப்பட்ட கோப்பு பயனற்றதாகிவிடும். மடிக்கணினியில் உள்ள ஒரு key-க்கு இதுவே தேவையான பாதுகாப்பு, ஏனெனில் மடிக்கணினிகள் திருடப்படலாம் மற்றும் அவற்றின் backups கசியலாம்.

நடைமுறையில் passphrase-ஆல் எந்த சிரமமும் இல்லை என்பதற்கு ssh-agent தான் காரணம். இந்த agent உங்கள் decrypted key-ஐ நினைவகத்தில் (memory) வைத்திருக்கும், எனவே ஒவ்வொரு login session-க்கும் ஒருமுறை மட்டும் passphrase-ஐ உள்ளிட்டால் போதும், அதன் பிறகு அனைத்து இணைப்புகளும் உடனடியாகச் செயல்படும். பெரும்பாலான desktop Linux விநியோகங்களும் macOS-ம் ஏற்கனவே உங்களுக்காக ஒரு agent-ஐ இயக்குகின்றன. உங்கள் key-ஐ அதில் ஏற்ற பின்வரும் கட்டளையைப் பயன்படுத்தவும்:

ssh-add ~/.ssh/id_ed25519

ssh-add -l தற்போது agent-ல் உள்ள key-களின் பட்டியலைக் காட்டும். ஒரு எச்சரிக்கை: agent forwarding (ssh -A) என்பது, நீங்கள் இணைப்பில் இருக்கும்போது, remote server உங்கள் agent-ஐப் பயன்படுத்தி அடுத்தடுத்த இணைப்புகளுக்கு அங்கீகாரம் பெற அனுமதிக்கிறது. எனவே, நீங்கள் முழுமையாக நம்பும் server-களுக்கு மட்டும் இதை இயக்கவும், மற்ற நேரங்களில் இதை அணைத்து வைக்கவும்.

சுழற்சி மற்றும் ரத்து செய்தல்: தொலைந்துபோன மடிக்கணினிக்கான செயல்முறை

ஒரு சாதாரண SSH key-ஐ ரத்து செய்வது என்பது, அந்த key உள்ள ஒவ்வொரு server-லும் authorized_keys கோப்பிலிருந்து அதன் வரியை நீக்குவதைத் தவிர வேறில்லை. இதற்கு எந்தவொரு certificate authority-க்கும் அறிவிக்க வேண்டியதில்லை, காலாவதி தேதிக்காகவும் காத்திருக்க வேண்டியதில்லை. அந்த வரி நீக்கப்பட்ட அடுத்த நொடியே, அந்த key மூலம் செய்யப்படும் புதிய login முயற்சிகள் தோல்வியடையும்.

அவசரகால நிலை இல்லாதபோதே, இந்தச் செயல்முறையை இப்போதே செய்து பாருங்கள். ஒரு server-ஐத் தேர்ந்தெடுத்து, ~/.ssh/authorized_keys கோப்பைத் திறந்து, அதன் comment மூலம் அந்த key-ஐக் கண்டறியவும். ஒரு editor மூலம் அந்த வரியை நீக்கவும் அல்லது comment-ஐக் கொண்டு filter செய்யவும்:

grep -v ' laptop$' ~/.ssh/authorized_keys > ~/.ssh/authorized_keys.tmp
mv ~/.ssh/authorized_keys.tmp ~/.ssh/authorized_keys

பின்பு, நீங்கள் ரத்து செய்த சாதனத்திலிருந்து login செய்ய முயன்று, அது தோல்வியடைவதை உறுதிப்படுத்தவும். மற்றொரு சாதனத்திலிருந்து login செய்து, அது இன்னும் வேலை செய்கிறதா என்பதையும் சரிபார்க்கவும். ஒரு முக்கியமான விவரம்: key-ஐ நீக்குவது ஏற்கனவே திறந்திருக்கும் session-களை மூடாது, ஏனெனில் login செய்யும் போது மட்டுமே key சரிபார்க்கப்படுகிறது. திருடப்பட்ட ஒரு சாதனத்தின் key-ஐ நீங்கள் ரத்து செய்கிறீர்கள் என்றால், server-ல் who-ஐச் சரிபார்த்து, உங்களுக்குத் தெரியாத ஏதேனும் session இருந்தால் அதை முடித்துவிடவும்.

சுழற்சி (Rotation) என்பது அதே செயல்பாட்டை வேறு வரிசையில் செய்வது: சாதனத்தில் புதிய key-ஐ உருவாக்கவும், ssh-copy-id மூலம் அதை நிறுவவும், புதிய key மூலம் login செய்ய முடிகிறதா என உறுதிப்படுத்தவும், அதன் பிறகு பழைய வரியை நீக்கவும். ஒரு சாதனம் கைமாறும்போது, key கசிந்திருக்க வாய்ப்புள்ளபோது அல்லது ஒருவர் குழுவிலிருந்து வெளியேறும்போது இதைச் செய்யவும். இரண்டு server-களில் இதை கைமுறையாகச் செய்வது சரி; ஆனால் இருபது server-களில் செய்யும்போது இது தானியங்கி முறைக்கு (automation) உரிய வேலையாகிறது. பல Linux server-களை நிர்வகித்தல் என்ற பகுதி, ஒரே மாதிரியான authorized_keys நிலையை எப்படி முழு fleet-க்கும் கொண்டு செல்வது என்பதைக் காட்டுகிறது.

செய்யக்கூடாதவை

  • உங்கள் எல்லா சாதனங்களுக்கும் ஒரே private key-ஐப் பயன்படுத்த வேண்டாம். ஒரு சாதனம் திருடப்பட்டால், எல்லா இடங்களிலும் key-ஐ மாற்றாமல் அந்த ஒரு சாதனத்தின் அணுகலை மட்டும் ரத்து செய்வது சாத்தியமற்றதாகிவிடும்.
  • ஒரு private key-ஐ git repository-ல் பதிவேற்ற வேண்டாம்; அது private repository-ஆக இருந்தாலும் சரி. தானியங்கி ஸ்கேனர்கள் public repository-களைத் தொடர்ந்து கண்காணிக்கும்; ஒரு key கசிந்த சில நிமிடங்களிலேயே அதைத் தவறாகப் பயன்படுத்த முயற்சிக்கும். மேலும், பிற்காலத்தில் ஒரு repository public-ஆக மாற்றப்பட்டால், அதன் முழு வரலாறும் கசிந்துவிடும்.
  • ஒரு server மற்றொரு server-ஐ அணுகுவதற்காக, உங்கள் laptop-ல் உள்ள private key-ஐ அந்த server-க்கு நகர்த்த வேண்டாம். அந்த server-லேயே தனிப்பட்ட key-ஐ உருவாக்கி, தேவையான இடத்தில் மட்டும் அந்த public key-ஐ அங்கீகரிக்கவும்.
  • private key-ஐ chat, email அல்லது support ticket-களில் பகிர வேண்டாம். .pub கோப்பாக இருக்கும் public key-ஐ மட்டுமே பகிர வேண்டும்.

உங்கள் key மூலம் server-க்குள் நம்பகத்தன்மையுடன் நுழைய முடிந்ததும், அடுத்த கட்டமாக password authentication-ஐ முடக்கவும். இதன் மூலம் உங்கள் server-க்கு எதிராகத் தொடர்ந்து நடத்தப்படும் password guessing முயற்சிகள் முற்றிலும் தோல்வியடையும். இதற்கான configuration விவரங்களை SSH hardening on a VPS பகுதியில் காணலாம்.

FAQ

கடவுச்சொல் அனுப்பாமல் SSH keys எவ்வாறு செயல்படுகின்றன?

உங்கள் public key-ஐ server ~/.ssh/authorized_keys-ல் வைத்திருக்கும். உள்நுழையும்போது, server ஒரு சவாலை (challenge) அனுப்பும்; உங்கள் client அந்தச் சவாலை private key மூலம் கையொப்பமிடும் (sign), server அந்த public key-ஐக் கொண்டு கையொப்பத்தைச் சரிபார்க்கும். Private key உங்கள் சாதனத்தை விட்டு வெளியேறாது, எனவே பரிமாற்றத்தின்போது எதையும் இடைமறிக்க முடியாது, server-லிருந்து திருடக்கூடிய வகையில் மீண்டும் பயன்படுத்தக்கூடிய தரவும் இல்லை. ஒரு server breached ஆனால், public keys மட்டுமே கசியும்; அவற்றைக் கொண்டு எங்கும் உள்நுழைய முடியாது.

எனது அனைத்து server-களுக்கும் ஒரே SSH key-ஐப் பயன்படுத்தலாமா?

அந்த key ஒரே சாதனத்தில் இருக்கும் வரை, பல server-களுக்கு ஒரே key-ஐப் பயன்படுத்துவது சரியானது. ஒரு server-க்கு ஒன்று என்றல்ல, ஒரு சாதனத்திற்கு ஒரு key என்பதே விதி: உங்கள் laptop-ன் public key-ஐ அது அணுக வேண்டிய அனைத்து server-களிலும் சேர்க்கலாம், உங்கள் desktop-க்குத் தனி key இருக்க வேண்டும். இது revocation-ஐ எளிதாக்குகிறது; ஒரு சாதனம் தொலைந்துவிட்டால், ஒவ்வொரு server-லிருந்தும் அந்த ஒரு வரியை மட்டும் நீக்கினால் போதும், மற்ற சாதனங்கள் தொடர்ந்து செயல்படும்.

.ssh directory மற்றும் authorized_keys-க்கு என்ன permissions இருக்க வேண்டும்?

~/.ssh-க்கு 700-ஐயும், authorized_keys மற்றும் ஒவ்வொரு private key-க்கும் 600-ஐயும் அமைக்கவும்; இவை அந்த account-ன் உரிமையில் இருக்க வேண்டும். sshd இயல்பாகவே StrictModes yes-ஐச் சரிபார்க்கும், எனவே உங்களைத் தவிர வேறு எவரும் எழுதக்கூடிய வகையில் ஒரு file அல்லது home directory இருந்தால், அது உங்கள் key-ஐ அமைதியாகப் புறக்கணிக்கும். இதற்கான ஒரே அடையாளம் server-ன் auth log அல்லது journal-ல் உள்ள Authentication refused: bad ownership or modes ஆகும்.

server-லிருந்து ஒரு SSH key-ஐ எவ்வாறு நீக்குவது?

அந்த account-ல் அங்கீகரிக்கப்பட்ட ~/.ssh/authorized_keys-லிருந்து அந்த key-க்கான வரியை நீக்கவும். Key material-க்கு அடுத்துள்ள comment-ஐக் கொண்டு சரியான வரியைக் கண்டறியவும். அந்த key-ஐப் பயன்படுத்திப் புதிய உள்நுழைவுகள் உடனடியாகத் தோல்வியடையும், ஆனால் ஏற்கனவே திறந்திருக்கும் sessions அப்படியே இருக்கும். எனவே, சாதனம் திருடப்பட்டிருந்தால், அந்த live session-ஐயும் முடிவுக்குக் கொண்டுவரவும். அந்த key நகலெடுக்கப்பட்ட அனைத்து server-களிலும் இதைச் செய்யவும்.

எனது SSH key-க்கு passphrase தேவையா?

Laptop அல்லது desktop-ல் உள்ள key-க்கு, ஆம். Passphrase அந்த key file-ஐ encrypt செய்கிறது, எனவே திருடப்பட்ட அல்லது கசிந்த நகல் தனியாகப் பயனற்றது. ssh-agent வசதியைப் பயன்படுத்துவதன் மூலம், ஒவ்வொரு இணைப்புக்கும் பதிலாக, ஒரு session-க்கு ஒருமுறை மட்டும் அதை உள்ளிட்டால் போதும். Server-ல் தானியங்கி முறையில் (automation) பயன்படுத்தப்படும் keys-க்கு பொதுவாக passphrase இருக்காது, ஏனெனில் அதை உள்ளிட மனிதர்கள் அங்கு இருக்க மாட்டார்கள்; அத்தகைய சூழலில், அந்த account-ன் செயல்பாடுகளைக் கட்டுப்படுத்துவதன் மூலம் அவற்றைப் பாதுகாக்கவும்.