Cyber Security · मराठी आवृत्ती
SSH (Secure Shell): port 22
या page मध्ये
EC2 ला login करणे, scp/sftp ने files copy करणे आणि remote commands चालवणे यासाठी SSH रोज उपयोगी पडतो. Connection encrypted असलं तरी चुकीचं configuration ठेवलं तर धोका निर्माण होऊ शकतो.
Key-based login कसं होतं?
खालील diagram हा process समजण्यासाठी सोपा model आहे. Private key तुमच्या laptop वरच राहते. तिच्याशी जुळणारी public key server च्या ~/.ssh/authorized_keys मध्ये असते.
Your laptop Server (EC2)
private key mykey.pem (never leaves) ~/.ssh/authorized_keys (public key)
| 1. TCP connect to port 22 |
| 2. Server proves its identity (host key) ---->| you accept fingerprint once
| 3. Encrypted channel agreed (key exchange) |
| 4. Server sends a challenge |
| 5. Laptop signs it with the PRIVATE key ----->| verified with PUBLIC key
| 6. Login allowed, shell opened |
- Client server च्या TCP port 22 ला connect होतो.
- Server आपली host key दाखवतो. Fingerprint trusted source सोबत verify करा.
- Key exchange ने encrypted channel तयार होतो.
- Client आपल्या private key च्या मदतीने authentication साठी signature तयार करतो. Server public key वापरून ती तपासतो.
- तपासणी यशस्वी झाली की login आणि shell access मिळतो. Private key server कडे पाठवली जात नाही.
Commands
ssh -i mykey.pem ec2-user@<PUBLIC_IP> # Amazon Linux
ssh -i mykey.pem ubuntu@<PUBLIC_IP> # Ubuntu
ssh-keygen -t ed25519 -C "raja@lab" # create your own key pair
cat ~/.ssh/known_hosts # servers you have trusted before
Amazon Linux साठी ec2-user, Ubuntu साठी ubuntu हे या examples मधले usernames आहेत. <PUBLIC_IP> च्या जागी तुमच्या स्वतःच्या server चा address द्या. ssh-keygen नवीन key pair तयार करतो; known_hosts मध्ये आधी भेटलेल्या servers च्या host keys असतात.
SSH protect कसं करायचं?
Internet वर उघड्या SSH service ला automated password guessing attempts येऊ शकतात. Key-based authentication वापरा, configuration तपासून password login आणि direct root login बंद करा, आणि port 22 फक्त तुमच्या trusted IP साठी allow करा. Part 11 मधलं fail2ban अतिरिक्त संरक्षणासाठी मदत करतं.
Private key leak होणं password leak होण्याइतकंच गंभीर आहे. त्या key ने login करता येत असेल तर ती हातात असलेली व्यक्ती access मिळवू शकते.
Practice
ssh-keygen वापरून ED25519 key pair तयार करा. ~/.ssh/ मधल्या दोन्ही files पाहा. कोणती share करता येते आणि कोणती private ठेवायची, स्वतःच्या शब्दांत लिहा.
उत्तर तपासा
.pub file ही public key आहे. तिच्याशी जुळणारी extension नसलेली private key कुणाला पाठवू नका. Public key server वर ठेवतात; private key client कडे सुरक्षित राहते.