What is SSH & How To Configure SSH
အားလုံးပဲ မင်္ဂလာပါ။ ဒီကြားထဲမှာ အလုပ်များနေတာနဲ့ စာမရေးဖြစ်လိုက်ဘူးဖြစ်သွားပါတယ်။ ဒီနေ့ ကျွန်တော် ပြောပြပေးချင်တဲ့ အကြောင်းအရာလေးကတော့ SSH အကြောင်းအရာလေးပဲဖြစ်ပါတယ်။ အဲဒီ့အပြင်ကို SSH ကို Configure ဘယ်လိုလုပ်ရမလဲဆိုတာကိုပါ တစ်ပါတည်း ပြောပြပေးသွားမှာ ဖြစ်ပါတယ်။
SSH ဆိုတာက Secure Shell ကိုဆိုလိုချင်တာဖြစ်ပါတယ်။ ဘယ်လိုနေရာတွေမှာသုံးကြလဲဆိုတော့ Server, Networking Devices တွေကို Manage လုပ်တဲ့အခါ၊ ပိုပြီးလုံခြုံစေတဲ့ Protocol (Or) Service တစ်မျိုးလို့လည်း ပြောလို့ရပါတယ်။ Network ပေါ်ကနေ Devices တွေကို ပိုပြီး Secure ဖြစ်ဖြစ်နဲ့ Management လုပ်လို့ရတယ်ဆို ရင်လည်း မမှားပါဘူး။ SSH က TCP/IP ပေါ်မှာ အလုပ်လုပ်ပြီးတော့ သူ့ရဲ့ Default Port Number ကတော့ TCP/22 ပဲဖြစ်ပါတယ်။ Linux Server တွေကို Management လုပ်တာမျိုးဆိုရင် SSH ကိုသုံးတာများပါတယ်။ Windows မှာ ဆိုရင်တော့ RDP (Remote Desktop Connection) ပေါ့။
SSH က Symmetric Encryption ရော၊ Asymmetric Encryption ရောနှစ်မျိုးလုံးကို Support လုပ်ပါတယ်။ Symmetric Encryption ဆိုတာ နားလည်လွယ်အောင်ပြောရင် Server တွေအများကြီးကို Key တစ်ခုတည်းနဲ့ ဝင်လို့ရအောင်လုပ်တာမျိုးကို ဆိုလိုချင်တာပါ။ ဥပမာပေးရရင်တော့ Master Key ပေါ့နော်။ ကျွန်တော်တို့ဆီမှာ Master Key တစ်ခုတည်းရှိရုံနဲ့ သော့တွေအကုန်ဖွင့်လို့ရပြီပေါ့။ Asymmetric ဆိုတာကျတော့ Server တစ်ခုမှာ Key တစ်ခု၊ နောက် Server တစ်ခုမှာလည်း Key တစ်ခုစီ၊ အပေါ်က ဥပမာအတိုင်း သော့ခလောက်သီးတစ်ခုစီမှာ သော့တစ်ခုစီပေါ့။ ဒီ Article မှာလည်း Asymmetric Encryption ကိုပဲသုံးပြီးတော့ SSH Configuration ပဲလုပ်ပြ သွားမှာဖြစ်ပါတယ်။
SSH Asymmetric ရဲ့အလုပ်လုပ်ပုံမှာဆိုရင် Public Key, Private Key နှစ်ခုရှိပါတယ်။ Public Key ဆိုတဲ့အတိုင်းပဲ သူ့ကို Server ပေါ်မှာသိမ်းပါတယ် ဥပမာပေးရရင် Public Key က သော့ခလောက်၊ Private Key က အဲဒီ့သော့ကို ဖွင့်မယ့်သော့ ဒီလိုဆိုပိုသဘောပေါက်မယ်ထင်ပါတယ်။ ဒါကြောင့်မို့လို့ ကျွန်တော်တို့ရဲ့ Private Key ကိုဘယ်သူ့ဆီ မှပေးလို့မရပါဘူး (ကောင်မလေးရှိရင်တောင်ပေးလို့မရဘူးနော် :3)
နောက်တစ်ခုက SSH ကို အပေါ်မှာပြောခဲ့သလို Public, Private Key တွေမသုံးပဲ Password သုံးပြီး Configure လုပ်လို့လည်းရပါတယ်။ ပိုပြီး Secure ဖြစ်အောင်ဆိုရင်တော့ Public, Private Key သုံးတာပဲ ကောင်းပါတယ်။ ဒီတော့ SSH Public Key, Private Key ကိုဘယ်လို Configure လုပ်မလဲပေါ့။
Windows မှာ SSH Public Key, Private Key ထုတ်ပုံ
Microsoft ရဲ့ Windows မှာ Default အားဖြင့် SSH နဲ့ပတ်သက်ပြီး Command တွေကိုအကုန်ရိုက်လို့ရပါတယ်။ ပထမဆုံး “ssh-keygen” ကိုသုံးပြီး Key Generate လုပ်ပါမယ်။

Command ရိုက်လိုက်တာနဲ့ Public/Private Key ကိုဘယ်နားသိမ်းမလဲမေးပါလိမ့်မယ်။ () ထဲမှာပါတာက သူ့ရဲ့ Default Location ပါ။ ကျွန်တော်ကတော့ ဒီအတိုင်း Enter ပဲနှိပ်လိုက်ပါမယ်။

ကျွန်တော့်စက်မှာက Key တွေရှိပြီးသားဖြစ်တဲ့အတွက် Overwrite လုပ်မှာလား မလုပ်ဘူးလားမေးတာပါ။ ကျွန်တော်ကတော့ Overwrite လုပ်မှာဖြစ်တဲ့အတွက် Y ကိုရိုက်ပြီး Enter ခေါက်လိုက်ပါတယ်။ ဒီနေရာမှာ သူက Key တွေကို Password ခံမလားမေးပါတယ်။ Key တွေကို ဒီအတိုင်းမသုံးပဲ Password ထပ်ခံမယ်ဆိုရင် ကိုရိုက်ချင် တဲ့ Password ကို နှစ်ခါရိုက်ပေးရပါမယ်။ ပိုပြီးတော့ Secure ဖြစ်စေပါတယ်။ ကျွန်တော်ကတော့ Password မခံတော့ဘူးမို့လို့ ဒီအတိုင်း Enter နှစ်ခါခေါက်ပေးလိုက်ပါတယ်။

ခုလိုမျိုးထွက်လာပြီဆိုရင်တော့ ကျွန်တော့်ရဲ့ Windows မှာ SSH Key Generate လုပ်တာပြီးသွားပါပြီ။ Linux မှာလည်း Key ထုတ်တဲ့ Command ကလည်း အတူတူပါပဲ။ File Path တွေကတော့ (Your identification has been saved in C:\Users\Aung Thu Myint/.ssh/id_rsa) ဒါက Private Key ပါ။ ဒီ (Your public key has been saved in C:\Users\Aung Thu Myint/.ssh/id_rsa.pub) ကတော့ Public Key ပဲဖြစ်ပါတယ်။ ခုအခြေအနေကို ဥပမာပေးရင် ကျွန်တော်တို့လက်ထဲမှာ သော့ခလောက်တစ်ခုနဲ့သူ့ရဲ့သော့ရှိ နေတယ်လို့မှတ်ယူနိုင်ပါပြီ။ ဆိုတော့ ကျွန်တော်တို့ သော့ခတ်လိုက်ရအောင်။ သော့ခတ်မယ်ဆိုရင် ကျွန်တော်တို့က သော့ခလောက်ကို ကိုခတ်ချင်တဲ့ သေတ္တာကိုခတ်သလိုပဲ Public Key ကိုလည်း ကိုယ်ဝင်ချင်တဲ့ Server ပေါ်မှာသွား ထားပေးရမှာဖြစ်ပါတယ်။ ဒီနေရာမှာ Manually လုပ်တာကိုပဲ ကျွန်တော်ပြောပြပေးသွားမှာပါ။ တစ်ခြားနည်းနဲ့ လည်းသွားထားလို့ရပါတယ်။
ကျွန်တော်ကလက်ရှိ Ubuntu Linux Server နဲ့ နမူနာပြပေးပါမယ်။ Public Key ကိုသွားမထားခင် Public Key ကို အရင်ဖတ်ကြည့်ပြီး Copy ယူထားပါမယ်။

ပိုသေချာချင်ရင်တော့ Notepad လိုမျိုး App တွေနဲ့ဖွင့်ပြီးယူလည်းရပါမယ်။ ထွက်လာတဲ့ Key တွေကို ကိုယ်ဝင်ချင် တဲ့ Linux Server မှာ Paste လုပ်ရပါမယ်။ ကိုယ်က Root User နဲ့ဝင်ချင်တယ်ဆိုရင် /root/.ssh/authorized_keys ထဲမှာ ခုနက Copy ယူလာတဲ့ Key ကိုထည့်ပေးရပါမယ်။ Root မဟုတ်ဘူး တစ်ခြားသော User ဆိုရင်လည်း ရပါတယ်။ /{Username}/.ssh/authorized_keys မှာသွားထည့်ပေးရင် ရပါပြီ။

ခုနကယူလာတဲ့ Key ကို Linux Server မှာ Paste လုပ်လိုက်ပါပြီ။ ပုံကတော့ nano Text Editor သုံးပြီးလုပ်ထား တာပါ။ ကိုယ်အားသာတဲ့ Editor ကိုသုံးပြီးလုပ်လို့ရပါတယ်။

ပြီးရင်တော့ Save လုပ်လိုက်ပါမယ်။ ဒီလိုဆိုရင်တော့ Key ထည့်တာပြီးသွားပါပြီ။ ဒါပေမယ့် တစ်ခု ကျန်ပါသေးတယ်။ SSH Config မှာ Key နဲ့မှဝင်လို့ရပါမယ်ဆိုပြီးသွားပြင်ရမှာပါ။ ဘယ်မှာသွားပြင်ရမလဲဆိုတော့ /etc/ssh/sshd_config မှာသွားပြင်ရမှာပါ။

အဲဒီ့မှာ PasswordAuthentication yes ကို Comment ဖြုတ်ပြီး yes နေရာမှာ no လုပ်ထားပေးရပါမယ်။ ဒါမှသာ Password ဝင်လို့မရတော့မှာဖြစ်ပါတယ်။ အဲတာပြီးရင်တော့ File ကို Save လိုက်ပါ။ ပြီးရင် SSH Service ကို “systemctl restart sshd” Command သုံးပြီး Restart ချလိုက်ပါ။

ဒါဆိုရင်တော့ Config အဆင့်တွေပြီးသွားပါပြီ။ Windows ဖက်ကနေတစ်ချက် Login ဝင်ကြည့်ပါမယ်။

ဒါဆိုရင်တော့ ဘာ Password မှမလိုပဲနဲ့ Linux Server ကို SSH ကနေ Login ဝင်လို့ရပါပြီ။ ဒီနေ့ကတော့ ဒီမှာပဲ အဆုံးသတ်လိုက်ပါမယ်။ နောက် Post တွေကျမှပဲ ထပ်တွေ့ကြတာပေါ့။
Written By Aung Thu Myint
Last updated