Ubuntu හි SSH භාවිත! සම්බන්ධතා, පෝට් වෙනස්කම් සහ පොදු යතුරු සත්‍යාපනය පිළිබඳ සම්පූර්ණ මාර්ගෝපදේශය

目次

1. හැඳින්වීම

Ubuntu හි SSH භාවිතා කිරීමෙන්, ඔබට ඔබේ සේවාදායකය හෝ පරිගණකය දුරස්ථව ආරක්ෂිතව ප්‍රවේශ කර කළමනාකරණය කළ හැක. මෙම මාර්ගෝපදේශය SSH හි මූලික කරුණු සිට Ubuntu හි SSH සේවාදායකය ස්ථාපනය කිරීම, ආරක්ෂක පියවරයන්, සහ ගැටළු විසඳීම දක්වා සියල්ල පැහැදිලි කරයි. එය ආරම්භකයන් සඳහා හිතකර සහ පහසු ලෙස සැලසුම් කර ඇත.

SSH යනු කුමක්ද?

SSH (Secure Shell) යනු ජාලයක් මත ආරක්ෂිත දුරස්ථ සම්බන්ධතා සපයන ප්‍රොටෝකෝලයක් වේ. සාම්ප්‍රදායික Telnet හෝ FTP වලට වඩා, SSH දත්ත සංකේතනය කරයි, එමඟින් අසාධාරණ ඇසීම සහ වෙනස් කිරීමේ අවදානම ගණනාවෙන් අඩු කරයි.

Ubuntu හි SSH භාවිතයේ ප්‍රධාන අවස්ථා

  • දුරස්ථ සේවාදායක කළමනාකරණය : දුරස්ථ ස්ථානයකින් Ubuntu සේවාදායකයක් ක්‍රියාත්මක කිරීම.
  • ගොනු මාරු කිරීම : SCP හෝ SFTP භාවිතා කර ගොනු ආරක්ෂිතව මාරු කිරීම.
  • පෝට් ඉදිරිපත් කිරීම : ආරක්ෂිත දුරස්ථ සම්බන්ධතාවක් ස්ථාපනය කිරීම.

ඔබ මෙම මාර්ගෝපදේශයෙන් ඉගෙන ගන්නා දේ

  • SSH හි මූලික සංකල්ප සහ ක්‍රියාකාරිත්වය
  • Ubuntu හි SSH සේවාදායකය ස්ථාපනය කරන ආකාරය
  • SSH සම්බන්ධතා සැකසුම් සහ ගැටළු විසඳීම
  • SSH සඳහා ආරක්ෂක පියවරයන්

2. SSH හි මූලික සංකල්ප

SSH කාර්යක්ෂමව භාවිතා කිරීමට, එහි මූලික සංකල්ප අවබෝධ කර ගැනීම වැදගත් වේ. මෙම කොටස SSH කෙරෙහි ක්‍රියාකාරිත්වය සහ විවිධ සත්‍යාපන ක්‍රම පැහැදිලි කරයි.

SSH කෙරෙහි ක්‍රියාකාරිත්වය

SSH යනු ගනුදෙනුකරු (client) සහ සේවාදායකය (server) අතර ආරක්ෂිත සම්බන්ධතාවයක් ස්ථාපනය කරන ප්‍රොටෝකෝලයකි. පෙරනිමි ලෙස, එය සංකේතනය කළ සන්නිවේදනය සඳහා TCP පෝට් 22 භාවිතා කරයි.

ප්‍රධාන ලක්ෂණ

  • දුරස්ථ ලොග්ඉන් : සේවාදායකයකදී විධාන ක්‍රියාත්මක කිරීම.
  • ගොනු මාරු කිරීම : SCP හෝ SFTP භාවිතා කර දත්ත ආරක්ෂිතව යැවීම.
  • පෝට් ඉදිරිපත් කිරීම : SSH හරහාත් සේවාවන්ට සම්බන්ධ වීම.

SSH සත්‍යාපන ක්‍රම

SSH ප්‍රධාන වශයෙන් දෙකේ සත්‍යාපන ක්‍රම සහය දක්වයි:

මුරපද සත්‍යාපනය

  • පරිශීලක නාමය සහ මුරපදය භාවිතා කර ලොග්ඉන් වීම.
  • භාවිතයට පහසු නමුත් බ්‍රූට් ෆෝස් ආක්‍රමණ වලට සලකුණු වේ.

පොදු යතුරු සත්‍යාපනය

  • පොදු සහ පෞද්ගලික යතුරු යුගලයක් භාවිතා කර සත්‍යාපනය.
  • මුරපද සත්‍යාපනයට වඩා ආරක්ෂිත සහ නිර්දේශිත.

SSH හි වාසි

  • දත්ත සංකේතනය : සන්නිවේදනය අතුරුදන් වීමෙන් රැකගනී.
  • පහසු දුරස්ථ කළමනාකරණය : ඕනෑම ස්ථානයකින් ප්‍රවේශය.
  • ආරක්ෂාව වැඩිදියුණු කිරීම : අනුමත නොකළ ප්‍රවේශය වැළැක්වීමට උපකාරී.

3. Ubuntu හි SSH සේවාදායකය ස්ථාපනය කිරීම

Ubuntu හි SSH භාවිතා කිරීමට, ඔබට OpenSSH සේවාදායකය ස්ථාපනය කළ යුතුය. මෙම කොටස ස්ථාපන පියවර සහ මූලික සැකසුම් පැහැදිලි කරයි.

OpenSSH සේවාදායකය ස්ථාපනය කිරීම

ඔබට පහත විධානය භාවිතා කර Ubuntu හි OpenSSH සේවාදායකය ස්ථාපනය කළ හැක:

sudo apt update
sudo apt install openssh-server

ස්ථාපනයෙන් පසු, SSH සේවාව ක්‍රියාත්මක වෙයිදැයි පරීක්ෂා කරන්න:

sudo systemctl status ssh

SSH සේවාව ආරම්භ කිරීම සහ පරීක්ෂා කිරීම

SSH සේවාව අතින් ආරම්භ හෝ නවතා දැමීමට, පහත විධාන භාවිතා කරන්න:

# Start SSH
sudo systemctl start ssh

# Enable SSH to start automatically on reboot
sudo systemctl enable ssh

# Stop SSH
sudo systemctl stop ssh

UFW (Uncomplicated Firewall) සැකසීම

UFW පෙරනිමි ලෙස සක්‍රිය නම්, SSH සම්බන්ධතා අවහිර විය හැක. පහත විධානය ක්‍රියාත්මක කර SSH ප්‍රවේශය ලබා දෙන්න:

sudo ufw allow ssh
sudo ufw enable

4. SSH සම්බන්ධතා සැකසීම

SSH ආරක්ෂිතව භාවිතා කිරීමට, නිවැරදි සැකසුම් අත්‍යවශ්‍ය වේ. මෙම කොටස පොදු යතුරු සත්‍යාපනය සැකසීමේ ක්‍රම පැහැදිලි කරයි.

යතුරු යුගලයක් ජනනය කිරීම

ගනුදෙනුකරු පාර්ශවයේ, පොදු සහ පෞද්ගලික යතුරු යුගලයක් සෑදීමට පහත විධානය ක්‍රියාත්මක කරන්න:

ssh-keygen -t rsa -b 4096

පෙරනිමි ලෙස, පෞද්ගලික යතුර ~/.ssh/id_rsa තුළ සුරැකේ, සහ පොදු යතුර ~/.ssh/id_rsa.pub තුළ සුරැකේ.

පොදු යතුර සේවාදායකයට පිටපත් කිරීම

ජනනය කළ පොදු යතුර SSH සේවාදායකයට මාරු කරන්න:

ssh-copy-id username@server-ip

විකල්පයක් ලෙස, SCP භාවිතා කර යතුර අතින් පිටපත් කරන්න:

scp ~/.ssh/id_rsa.pub username@server-ip:~/

සේවාදායකයේ, පොදු යතුර නිවැරදි නාමාවලියට ගෙන යන්න:

mkdir -p ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/id_rsa.pub

sshd_config ගොනුව සංස්කරණය කිරීම

SSH සැකසුම් ගොනුව වෙනස් කර ආරක්ෂාව වැඩිදියුණු කරන්න:

sudo nano /etc/ssh/sshd_config
# Disable password authentication (enable public key authentication only)
PasswordAuthentication no

# Disable root login
PermitRootLogin no

# Change the default SSH port (example: 2222)
Port 2222

වෙනස්කම් කළ පසු, SSH සේවාව නැවත ආරම්භ කරන්න:

sudo systemctl restart ssh

5. SSH සේවාදායකයකට සම්බන්ධ වීම

SSH සේවාදායකය සකස් කළ පසු, ඔබට එයට සම්බන්ධ වීමට සේවාදායක යන්ත්‍රයකින් අවශ්‍ය වේ. මෙම කොටස මූලික SSH සම්බන්ධතා ක්‍රම සහ පෝට් වෙනස්කම් කිරීමේ ක්‍රියාකාරීත්වය පැහැදිලි කරයි.

මූලික SSH සම්බන්ධතා පණිවිඩය

සේවාදායකයකින් SSH සේවාදායකයකට සම්බන්ධ වීමට, භාවිතා කරන්න:

ssh username@server-ip

උදාහරණයක් ලෙස, සේවාදායකයේ IP ලිපිනය 192.168.1.10 බව සහ පරිශීලක නාමය ubuntu බව උපකල්පනය කර ගන්න:

ssh ubuntu@192.168.1.10

පළමු සම්බන්ධතාවේදී, ඔබට ඇඟිලි සලකුණු තහවුරු කිරීමේ ඉල්ලීමක් දැකිය හැක. එය පිළිගැනීමට සහ ඉදිරියට යාමට “yes” ටයිප් කරන්න.

අභිරුචි පෝට් එකකින් සම්බන්ධ වීම

නිපුණ පෝට් (22) වෙනස් කර ඇත්නම්, -p විකල්පය භාවිතා කරමින් පෝට් සඳහන් කරන්න:

ssh -p 2222 ubuntu@192.168.1.10

පුද්ගලික යතුරකින් සම්බන්ධ වීම

පොදු යතුර සත්‍යාපනය භාවිතා කරන්නේ නම්, -i විකල්පය භාවිතා කරමින් පුද්ගලික යතුර සඳහන් කරන්න:

ssh -i ~/.ssh/id_rsa ubuntu@192.168.1.10

SSH හරහා දූරස්ථ පණිවිඩ ක්‍රියාත්මක කිරීම

සේවාදායකයට අන්තර්ක්‍රියාකාරීව ලොග් වීමකින් තොරව දූරස්ථ පණිවිඩ ක්‍රියාත්මක කළ හැක:

ssh ubuntu@192.168.1.10 "ls -lah /home/ubuntu"

මෙය ස්වයංක්‍රීයකරණය සහ දූරස්ථ කළමනාකරණය සඳහා ගුණාත්මක වේ.

SCP හරහා ගොනු හුවමාරු කිරීම

දේශීය PC එකකින් සහ දූරස්ථ සේවාදායකයකින් ගොනු හුවමාරු කිරීමට SSH භාවිතා කරන්න.

දේශීය සිට දූරස්ථ දක්වා

scp filename username@server-ip:/remote/directory

උදාහරණය:

scp myfile.txt ubuntu@192.168.1.10:/home/ubuntu/

දූරස්ථ සිට දේශීය දක්වා

scp username@server-ip:/remote/file ./local/directory

උදාහරණය:

scp ubuntu@192.168.1.10:/home/ubuntu/myfile.txt ./

SFTP හරහා ගොනු කළමනාකරණය

SSH හරහා ගොනු කළමනාකරණය සඳහා SFTP භාවිතා කරන්න:

sftp ubuntu@192.168.1.10

සම්බන්ධ වූ පසු, ඔබට පහත පණිවිඩ භාවිතා කළ හැක:

ls        # List files
cd        # Change directory
put file  # Upload file from local to remote
get file  # Download file from remote to local
exit      # Exit SFTP session

6. SSH සම්බන්ධතාවල ගැටලු විසඳීම

SSH සම්බන්ධතා ගැටලු සුලබයි. මෙම කොටස සාමාන්‍ය ගැටලු සහ ඒවායේ විසඳුම් ආවරණය කරයි.

සාමාන්‍ය SSH සම්බන්ධතා දෝෂ සහ විසඳුම්

SSH සම්බන්ධ වීම අසාර්ථක වුවහොත්, පහත හේතු සලකා බලන්න:

1. SSH සේවාදායකය ක්‍රියාත්මක නොවීම

SSH සේවාදායකය සක්‍රිය දැයි පරීක්ෂා කරන්න:

sudo systemctl status ssh

විසඳුම:

  • සේවාදායකය ක්‍රියාත්මක නොවේ නම්, එය ආරම්භ කරන්න:
sudo systemctl start ssh
  • SSH නැවත ආරම්භ වන බව සහතික කරන්න:
sudo systemctl enable ssh

2. Firewall (UFW) SSH අවහිර කිරීම

UFW (Uncomplicated Firewall) සක්‍රිය නම්, එය SSH ප්‍රවේශය අවහිර කළ හැක.

විසඳුම:

  • වත්මන් UFW සැකසුම් පරීක්ෂා කරන්න:
sudo ufw status
  • SSH සම්බන්ධතා ඉඩදීම:
sudo ufw allow ssh

(අභිරුචි පෝට් භාවිතා කරන්නේ නම්, sudo ufw allow <port> ක්‍රියාත්මක කරන්න)

  • UFW නැවත ආරම්භ කරන්න:
sudo ufw reload

3. SSH පෝට් අංකය වෙනස් වීම

SSH වෙනත් පෝට් එකක ක්‍රියාත්මක වන්නේ නම්, සම්බන්ධ වන විට නිවැරදි පෝට් සඳහන් කරන්න.

විසඳුම:

  • සකස් කර ඇති SSH පෝට් තහවුරු කරන්න:
sudo grep Port /etc/ssh/sshd_config
  • සම්බන්ධ වන විට නිවැරදි පෝට් භාවිතා කරන්න:
ssh -p 2222 username@server-ip

4. වැරදි SSH යතුර අවසර

SSH යතුර සඳහා වැරදි ගොනු අවසර සත්‍යාපන අසාර්ථකත්වයට හේතු විය හැක.

විසඳුම:

  • පුද්ගලික යතුර සඳහා නිවැරදි අවසර සහතික කරන්න:
chmod 600 ~/.ssh/id_rsa
  • අවසර ලබා දී ඇති යතුර ගොනුව නිවැරදිව සකස් කර ඇති බව සහතික කරන්න:
chmod 644 ~/.ssh/authorized_keys

5. SSH ලොග පරීක්ෂා කිරීම

SSH ගැටලු විනිශ්චය කිරීමට, ලොග පරීක්ෂා කරන්න:

sudo journalctl -u ssh --no-pager | tail -n 20

රියල්-ටයිම් ලොග නිරීක්ෂණය සඳහා:

sudo tail -f /var/log/auth.log

7. SSH ආරක්ෂාව වැඩිදියුණු කිරීම

SSH යනු ශක්තිමත් දුරස්ථ ප්‍රවේශ මෙවලමක් වන අතර, නිසි ආරක්ෂක පියවර නොගතහොත්, එය අනුමත නොකළ ප්‍රවේශය සහ බ්‍රුට්‑ෆෝස් ප්‍රහාර සඳහා ඉලක්කයක් විය හැක. මෙම කොටස SSH ආරක්ෂාව වැඩිදියුණු කිරීම සඳහා නිර්දේශිත වින්‍යාසයන් පැහැදිලි කරයි.

1. මුරපද සත්‍යාපනය අක්‍රිය කර පබ්ලික් කී සත්‍යාපනය භාවිතා කරන්න

පෙරනිමියෙන්, SSH මුරපද සත්‍යාපනය ඉඩ දෙයි, එය බ්‍රුට්‑ෆෝස් ප්‍රහාර වල අවදානම වැඩි කරයි. පබ්ලික් කී සත්‍යාපනයට මාරු වීම ආරක්ෂාව වැඩි කරයි.

පියවරයන්

  1. sshd_config ගොනුව සංස්කරණය කරන්න“` sudo nano /etc/ssh/sshd_config
2. පහත සැකසුම් (අවශ්‍ය නම් එකතු) කරන්න:

PasswordAuthentication no PubkeyAuthentication yes

3. SSH සේවාව නැවත ආරම්භ කරන්න:

sudo systemctl restart ssh

මෙය SSH එක පබ්ලික් කී මගින් පමණක් සත්‍යාපනය ලබා ගැනීමට ඉඩ සලසයි. මෙම වෙනස යොදීමට පෙර පබ්ලික් කී සත්‍යාපනය සකස් කර ඇති බවට විශ්වාස කරන්න.

### 2. පෙරනිමි SSH තොට (පෝට්) වෙනස් කරන්න

පරනිමි SSH තොට (22) භාවිතා කිරීම එය ප්‍රහාරකරුවන්ට පහසු ඉලක්කයක් කරයි. තොට වෙනස් කිරීම ආරක්ෂාව වැඩි කරයි.

#### පියවරයන්

1. `sshd_config` ගොනුව විවෘත කරන්න:

sudo nano /etc/ssh/sshd_config

2. තොට අංකය වෙනස් කරන්න (උදා: 2222 කට):

Port 2222

3. නව තොට firewall තුළ ඉඩ දෙන්න:

sudo ufw allow 2222/tcp

4. SSH සේවාව නැවත ආරම්භ කරන්න:

sudo systemctl restart ssh

5. නව තොට පරීක්ෂා කරන්න:

ssh -p 2222 username@server-ip

### 3. Root පරිශීලක ලොග්‑ඉන් අක්‍රිය කරන්න

පෙරනිමියෙන්, root පරිශීලකයා SSH මගින් ලොග්‑ඉන් විය හැක, එය ආරක්ෂක අවදානමක් වේ. නියමිත පරිශීලකයින්ට පමණක් සම්බන්ධ වීමට ඉඩ දීම නිර්දේශිතයි.

#### පියවරයන්

1. `sshd_config` ගොනුව විවෘත කරන්න:

sudo nano /etc/ssh/sshd_config

2. පහත සැකසීම වෙනස් කරන්න:

PermitRootLogin no

3. SSH සේවාව නැවත ආරම්භ කරන්න:

sudo systemctl restart ssh

### 4. Fail2Ban සමඟ බ්‍රුට්‑ෆෝස් ප්‍රහාර වලින් ආරක්ෂා වන්න

Fail2Ban ලොග්‑ඉන් උත්සාහයන් නිරීක්ෂණය කර, බොහෝ අසාර්ථක සත්‍යාපන උත්සාහයන් පසු IP ලිපින අවහිර කරයි.

#### ස්ථාපනය සහ වින්‍යාසය

1. Fail2Ban ස්ථාපනය කරන්න:

sudo apt install fail2ban -y

2. පෙරනිමි වින්‍යාස ගොනුව පිටපත් කරන්න:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

3. `jail.local` සංස්කරණය කරන්න:

sudo nano /etc/fail2ban/jail.local

4. `[sshd]`ටතේ සැකසුම් වෙනස් කරන්න:
[sshd] enabled = true maxretry = 5 bantime = 600 findtime = 600

* `maxretry` : ඉඩ දෙන උපරිම ලොග්‑ඉන් උත්සාහ ගණන.
* `bantime` : IP එක අවහිර වන කාලය (තත්පර වලින්).
* `findtime` : අසාර්ථක උත්සාහ ගණනය සඳහා කාල කවුළුව (තත්පර වලින්).

1. Fail2Ban නැවත ආරම්භ කරන්න:

sudo systemctl restart fail2ban

6 Fail2Ban තත්ත්වය පරීක්ෂා කරන්න:

sudo fail2ban-client status sshd

## 8. නිතර අසන ප්‍රශ්න (FAQ)

SSH භාවිතා කිරීමේදී සාමාන්‍ය ප්‍රශ්න සහ ගැටළු මෙහි පිළිතුරු දක්වා ඇත.

### Q1: SSH සම්බන්ධතාවය ප්‍රතික්ෂේප කරන්නේ ඇයි?

ඇති විය හැකි හේතු:

* **SSH සේවාව ක්‍රියාත්මක නොවේ** → `sudo systemctl status ssh` සමඟ පරීක්ෂා කරන්න
* **Firewall එක SSH අවහිර කරයි** → `sudo ufw allow ssh` භාවිතා කර ඉඩ දෙන්න
* **අභිරුචි තොටක් භාවිතා කරයි** → `ssh -p <port> username@server-ip` මගින් සම්බන්ධ වන්න

### Q2: SSH පෙරනිමි තොට කෙසේ වෙනස් කරන්නේද?

`sshd_config` ගොනුව වෙනස් කරන්න:

sudo nano /etc/ssh/sshd_config

තොට වෙනස් කරන්න:

Port 2222

ඊළඟට SSH නැවත ආරම්භ කරන්න:

sudo systemctl restart ssh

### Q3: SSH වෙත ප්‍රවේශ විය හැකි IP ලිපින සීමා කිරීම කෙසේද?

Firewall සැකසුම් වෙනස් කරන්න:

sudo ufw allow from 192.168.1.100 to any port 22

හෝ `sshd_config` භාවිතා කරන්න:

AllowUsers username@192.168.1.100 “`

9. නිගමනය

මෙම මාර්ගෝපදේශය SSH මූලික කරුණු සිට ආරක්ෂක වැඩිදියුණු කිරීම් දක්වා සියල්ල ආවරණය කරයි. ප්‍රධාන කරුණු මෙසේය:

  • මුරපද වෙනුවට පබ්ලික් කී සත්‍යාපනය භාවිතා කරන්න.
  • පෙරනිමි SSH තොට වෙනස් කර ආරක්ෂාව වැඩි කරන්න.
  • Root ලොග්‑ඉන් අක්‍රිය කර අනුමත නොකළ ප්‍රවේශය වැළැක්වන්න.
  • Fail2Ban භාවිතා කර බ්‍රුට්‑ෆෝස් ප්‍රහාර අවහිර කරන්න.
  • SSH ලොග් නිරීක්ෂණය කර ගැටළු විසඳන්න.

අතිරේක සම්පත්

මෙම හොඳ පුරුදු අනුගමනය කිරීමෙන්, ඔබට ආරක්ෂිත සහ කාර්යක්ෂම SSH පරිසරයක් පවත්වා ගත හැකිය. 🚀

年収訴求