Linux Servers मध्ये Passwordless SSH कसं set up करायचं
खऱ्या projects मध्ये कधीच एकच server नसतो. एक controller server बाकीच्यांवर login करून code deploy करतो, checks चालवतो किंवा logs गोळा करतो, आणि हे तो password ने नाही तर SSH keys ने करतो. हा chapter तेच तीन EC2 servers वर बनवतो: एका server वर key pair बनवायची, त्याची public key बाकीच्यांवर ठेवायची, त्यांच्यामध्ये port 22 उघडायचा, आणि password शिवाय login करायचं. वाटेत प्रत्येक server वर लागणाऱ्या रोजच्या commands पण येतात: ls -l वाचणं, ls -ltr ने sort करणं, hidden files बघणं, mkdir -p ने folders बनवणं, du ने size आणि df ने मोकळी जागा तपासणं, आणि vi मधून सुखरूप बाहेर पडणं. सुरुवात interview मधल्या आवडत्या प्रश्नाने: server दुसऱ्या Region मध्ये नेणं.
या class मध्ये काय शिकणार
- तीन servers चा lab बनवणं, आणि login आधीचे checks
- AMI copy ने EC2 server दुसऱ्या Region मध्ये नेणं
cat >,>>, files जोडणं,tac,statआणिtouchची झटपट उजळणीviआणिnanosurvival kitls -lवाचणं,ls -ltआणिls -ltrने sort,ls -aआणिls -laने hidden files, आणिllmkdir -p,cd,cd ../..आणिpwd- File किंवा folder साठी
du -sh, आणि पूर्ण disk साठीdf -h - Move आणि rename साठी
mv ec2-userम्हणून EC2 servers मध्ये passwordless SSH:ssh-keygen,authorized_keys,chmod 700/600आणि port 22- Trust एकाच दिशेने का, आणि चार servers दोन्ही दिशांनी म्हणजे 12 paths का
- नंबरने माहीत असायला हवेत असे ports
1. Lab: तीन servers, आणि login आधीचे checks
का: Passwordless SSH अनेक servers मध्येच अर्थपूर्ण. तीन सारखे servers बनवून आधी ते एकमेकांपर्यंत पोहोचतात हे तपासलं, की नंतरचं कोणतंही failure network मध्ये नाही, keys मध्ये असतं.
काय: Amazon Linux 2023 चे तीन t3.micro servers, एकाच Region आणि VPC मध्ये, एकाच key pair आणि security group ने launch केलेले. Name tag मध्ये त्यांना linux1, linux2 आणि linux3 नाव द्या.
कसं:
- Number of instances: 3 ठेवून एकदम launch करा, किंवा एक launch करून मग आणखी दोन. Launch च्या 7 steps तुमचा पहिला EC2 instance मध्ये आहेत.
- Console मध्ये प्रत्येकाचं नाव बदला (Name column मधली pencil click करा).
- Status check मध्ये सगळे checks passed दिसेपर्यंत थांबा. एक system check असतो (AWS host आणि त्याचं network) आणि एक instance check (तुमची OS).
t3.microसारखे नवीन, Nitro-based types attached EBS check पण चालवतात, म्हणून ते 3/3 दाखवतात; जुने types 2/2. सविस्तर: Status checks: 2/2 की 3/3?. - SSH आणि तुमच्या key ने login करा, किंवा browser मधल्या EC2 Instance Connect ने.
Classroom line
Small mistakes become big ones.
Class मधलं वाक्य
छोट्या छोट्या चुकाच मोठ्या चुका होतात.
Classroom line – हिंदी
"Chhota chhota mistake hi bada mistake ho jayega."
अनेक servers च्या lab मध्ये मदत करणाऱ्या दोन गोष्टी:
.pemकी.ppk:.pemहा OpenSSH format, Windows, Mac आणि Linux वरचीsshcommand तो वापरते..ppkहा PuTTY चा format; PuTTYgen एकाचा दुसऱ्यात convert करतो. जास्त माहिती Step 4: Key pair मध्ये.- मी कुठल्या server वर आहे? Prompt मध्ये host name दिसतं, जे by default
ip-आणि private IP असतं, Name tag नाही. Prompt मध्ये Name दिसायला, प्रत्येक server वर हे एकदा चालवा, मग logout करून परत login करा:sudo hostnamectl set-hostname linux1
2. Interview प्रश्न: EC2 server दुसऱ्या Region मध्ये न्या
का: Instance Mumbai मधून Singapore ला ओढून नेता येत नाही. Instance, त्याचे volumes, key pair आणि security group सगळे एकाच Region चे असतात. म्हणून त्याऐवजी image copy करायची.
Classroom line
They really ask this in interviews.
Class मधलं वाक्य
Interview मध्ये खरंच विचारतात हे.
Classroom line – हिंदी
"Interview mein poochhte hain yaar, serious."
Figure 1. Mumbai मध्ये AMI बनवा, ती Singapore ला copy करा (copy ला नवीन AMI ID मिळतो), copy मधून launch करा, तपासा, मग जुना server stop किंवा terminate करा. Key pair, security group आणि IP addresses नवीन Region मध्ये परत set करा.
कसं:
- Mumbai मध्ये instance select करा, मग Actions > Image and templates > Create image. AMI Available होईपर्यंत थांबा. (AMI AWS Elastic IP, AMI आणि EBS Snapshots सोप्या भाषेत मध्ये समजावली आहे.)
- AMIs मध्ये ती select करा, मग Actions > Copy AMI, आणि destination Region म्हणून Asia Pacific (Singapore) निवडा.
- Console Singapore ला switch करा. Copy ला नवीन AMI ID असतो; ती Available होईपर्यंत थांबा.
- Launch instance from AMI. Singapore मध्ये असलेली key pair निवडा (नवीन बनवा, किंवा तुमची आधीची public key import करा) आणि लागणारे ports असलेला security group.
- नवीन server test करा. मग जुना stop किंवा terminate करा, आणि नको असलेल्या AMIs deregister करून snapshots delete करा, कारण प्रत्येक Region स्वतःच्या copy चं bill लावतो.
Step 1 नंतर जुन्या server वर लिहिलेलं काहीही copy मध्ये नसतं, म्हणून छोटा cut-over plan करा. मग interviewer ने स्वतःला 10 पैकी rating द्यायला सांगितलं, तर प्रामाणिक रहा: defend करता येणारा 6 हा defend न करता येणाऱ्या 9 पेक्षा चांगला.
3. झटपट उजळणी: cat, tac, stat आणि touch
का: या commands या chapter मध्ये परत येतात: public key वाचायला cat, files तपासताना stat आणि touch. छोटी उजळणी setup steps जलद ठेवते.
या commands आधीच्या chapters मधल्या आहेत, म्हणून इथे फक्त थोडक्यात:
cat > file1
cat >> file1
cat file1 file2 > file3
tac file3
stat file3
touch f1 f2 f3
cat > file1तुम्ही लिहिलेलं file मध्ये लिहितो; save करायला रिकाम्या ओळीवर Ctrl+D दाबा. Ctrl+C command रद्द करतो आणि file रिकामी किंवा अर्धवट राहू शकते.>>शेवटी जोडतो; एकच>content बदलून टाकतो.cat file1 file2 > file3दोन files जोडून तिसरी बनवतो;tacओळी उलट्या दाखवतो.statAccess, Modify, Change आणि Birth दाखवतो. EC2 वर घड्याळ UTC मध्ये असतं, म्हणून भारतीय वेळेसाठी 5:30 मिळवा.- आधीच्या file वर
touchAccess आणि Modify आत्ताचे करतो (Change मागोमाग); नवीन नावावर तो रिकामी file बनवतो. Content ला तो कधीच हात लावत नाही.
Classroom line
Never press Ctrl+C here, it's Ctrl+D.
Class मधलं वाक्य
चुकीचं आहे, इथे कधीच Control C नाही दाबायचं, Control D आहे.
Classroom line – हिंदी
"Galat hai, Control C nahi dalna kabhi bhi, Control D hai."
सविस्तर स्पष्टीकरण: cat आणि > चा trap, तीन timestamps आणि cat आणि tac.
4. vi आणि nano survival kit
का: Section 14 मध्ये तुम्ही authorized_keys edit कराल, आणि अनेक servers वर vi हाच एकमेव editor install असतो.
Figure 2. vi normal mode मध्ये उघडतो. Typing साठी i किंवा o insert mode मध्ये नेतात, Esc परत आणतो, आणि : ने :wq, :q! आणि :wq! साठी command line उघडते. nano ला modes नाहीत: Ctrl+O save, Ctrl+X बाहेर.
कसं, vi मध्ये:
vi notes.txtfile normal mode मध्ये उघडतो: keys म्हणजे commands, text नाही.- Cursor जवळ लिहायला
iदाबा, किंवा खाली नवीन ओळ उघडायलाo. खाली-- INSERT --दिसतं. - Text लिहा, मग normal mode मध्ये परत जायला Esc दाबा.
- Save करून बाहेर पडायला
:wqआणि Enter, save न करता बाहेर:q!, किंवा force save साठी:wq!(उदा. तुमच्याच read-only file वर). - Normal mode मध्ये उपयोगी:
Gशेवटच्या ओळीवर नेतो,ddचालू ओळ delete करतो.
nano मध्ये: थेट लिहा; Ctrl+O save करतो, Ctrl+X बाहेर नेतो (save विचारलं तर Y आणि Enter).
Classroom line
Work calmly, with presence of mind.
Class मधलं वाक्य
शांतपणे, presence of mind ठेवून काम करायचं.
Classroom line – हिंदी
"Samadhan se, presence of mind rakh ke kaam karne ka."
Browser terminal आणि zoom: EC2 Instance Connect मध्ये vi उघडा असताना browser zoom केलं तर screen गडबडू शकते, कारण browser terminal नवीन size vi ला नीट देत नाही. vi मध्ये काहीच बिघडत नाही. vi उघडण्याआधी zoom set करा, redraw साठी Ctrl+L दाबा, किंवा नेहमीचा SSH terminal वापरा. दोन्ही editors बद्दल जास्त: nano आणि vi.
5. ls -l वाचणं
का: सैल permissions असलेल्या keys आणि folders SSH नाकारतो. SSH गपचूप तुमची key दुर्लक्षित करण्याआधी ते पकडायचा मार्ग म्हणजे ls -l नीट वाचणं.
काय: ls -l एका ओळीत एक item दाखवतो: type, permissions, owner, size आणि वेळ. पहिल्या अक्षरावरूनच file की folder ते कळतं (त्याबद्दल जास्त).
Figure 3. ls -l ची एक ओळ: type, permissions, Amazon Linux वरचा SELinux dot, links, owner, group, bytes मध्ये size, शेवटच्या बदलाची वेळ आणि नाव.
- Type:
-file,ddirectory,llink. - Permissions: owner, group आणि others साठी
rwxचे तीन गट. Amazon Linux वर त्यानंतरचा.म्हणजे file ला SELinux label आहे. - Links, owner, group.
- Bytes मध्ये size. K, M आणि G बघायला
-hजोडा (ls -lh). - शेवटच्या बदलाची वेळ, मग नाव.
6. वेळेनुसार sort: ls -lt आणि ls -ltr
का: काही बिघडलं की पहिला प्रश्न असतो "शेवटची कुठली file बदलली?"
कसं:
touch file7
touch file8
ls -lt
ls -ltr
ls -ltModify time नुसार sort करतो, नवीन आधी:file8सगळ्यात वर.ls -ltrक्रम उलटा करतो, नवीन शेवटी:file8सगळ्यात खाली, तुमच्या prompt च्या अगदी वर, जिथे तुमची नजर आधीच असते.ls -lrtहीच command आहे; letters कुठल्याही क्रमाने चालतात.- Server वर
ls -ltr /var/logसगळ्यात अलीकडे लिहिलेला log खाली दाखवतो.
7. Hidden files: ls -a, ls -la आणि ll
का: SSH च्या files ~/.ssh या hidden folder मध्ये असतात. साधा ls तो कधीच दाखवत नाही, म्हणून जे बदलणार आहात ते बघायला -a लागतो.
काय: Dot ने सुरू होणारं नाव hidden असतं. ls ते दाखवत नाही; ls -a दाखवतो.
ls -a
ls -la
ll
ls -aसगळं दाखवतो,.(हा folder),..(वरचा folder),.bashrc,.bash_profileआणि.sshसकट.ls -laतीच list long format मध्ये देतो:.sshच्या permissions तपासायला वापरा.llहा shortcut (alias) आहे. Amazon Linux वर त्याचा अर्थ colours सहls -l; Ubuntu वरls -alF. तुमच्या server वर त्याचा अर्थ बघायलाalias llलिहा.la -laसारखी typocommand not foundदेते: error चा पहिला शब्द वाचा.
Classroom line
Hidden files and directories start with a dot.
Class मधलं वाक्य
Hidden files आणि directories dot ने सुरू होतात.
Classroom line – हिंदी
"Hidden files and directories dot se start hota hai."
Figure 4. ls, ls -l, ls -lt, ls -ltr, ls -a, ls -la, ls -lh आणि ll, आणि प्रत्येक काय दाखवतो. Letters कुठल्याही क्रमाने जोडता येतात.
Hidden files बद्दल जास्त: Hidden files: नावाच्या सुरुवातीला dot.
8. Folders: mkdir -p, cd आणि pwd
का: Servers setup करताना सतत folders बनवावे लागतात आणि त्यात फिरावं लागतं. -p आणि relative cd paths अनेक commands वाचवतात.
कसं:
mkdir dir1
mkdir -p dir2/dir3/dir4/dir5
cd dir2/dir3/dir4/dir5
pwd
cd ../..
cd
mkdir -pपूर्ण साखळी एकदम बनवतो.-pशिवायmkdir dir9/dir8No such file or directoryने fail होतो, कारणdir9नाहीच.-pसह तीच command परत चालवली तरी error येत नाही.cd dir2/dir3/dir4/dir5एका step मध्ये चार levels खाली नेतो;pwdपूर्ण path दाखवतो.cd ../..दोन levels वर नेतो. नुसतंcdनेहमी home ला नेतं (/home/ec2-user).- Path नसेल तर
cd dir1/dir2No such file or directoryने fail होतो. Error वाचा, मगlsआणिpwdने path तपासा.
Classroom line
How do we know which directory we're in?
Class मधलं वाक्य
आपण कुठल्या directory मध्ये आहोत हे कसं कळणार?
Classroom line – हिंदी
"Kaise pata chalega ki hum kaunse directory mein hain?"
Figure 5. Animation: mkdir -p एका step मध्ये dir2 ते dir5 बनवतो, cd dir2/dir3/dir4/dir5 चार levels खाली नेतो, cd ../.. परत dir3 ला आणतो, आणि नुसतं cd home ला नेतं. प्रत्येक वेळी pwd path दाखवतो.
Classroom line
In DevOps, the more errors you hit, the more you learn.
Class मधलं वाक्य
DevOps मध्ये लक्षात ठेवा, जितके errors येतील तितकं आपण शिकतो.
Classroom line – हिंदी
"DevOps mein yaad rakhlo, jitna error aayega utna hum log seekhte hain."
Paths आणि cd चे details Linux Directory Commands: pwd, ls, cd, mkdir beginners साठी मध्ये आहेत.
9. du: ही file किंवा folder किती मोठा आहे?
का: Disk भरली की कोणता folder ती खातोय हे कळायला हवं. du ते सांगतो.
काय: du (disk usage) तुम्ही दिलेल्या गोष्टी disk वर किती जागा घेतात ते दाखवतो.
du -sh file7
du -sh dir2
du -sh *
-sम्हणजे summarize: आतल्या प्रत्येक folder साठी एक ओळ न देता, प्रत्येक item ची एक total.-hम्हणजे human-readable: blocks ऐवजी K, M आणि G.du -sh *चालू folder मधल्या प्रत्येक item ची एक ओळ देतो (*hidden items सोडतो).- रिकामी file
0दाखवते. छोटी file4.0Kदाखवते, कारण disk ची जागा 4 KB च्या blocks मध्ये वापरली जाते;ls -lअचूक bytes दाखवतो. /var/logसारखे तुम्हाला वाचता न येणारे folders:sudo du -sh /var/logवापरा.

Console: Lab server वर du -sh *: रिकाम्या files आणि folders 0 दाखवतात, आणि प्रत्येक छोटी file एक 4.0K block घेते.
10. df: disk किती भरली आहे?
का: भरलेली disk databases आणि websites थांबवते. df हा पहिला check, आणि passwordless SSH असेल तर तो एकाच जागेवरून प्रत्येक server वर चालवता येतो.
काय: df (disk free) प्रत्येक mounted filesystem दाखवतो: त्याचा size, किती वापरला, किती मोकळा, आणि तो कुठे mount आहे.
df -h
df -h /

Console: t3.micro वर df -h: root volume /dev/nvme0n1p1 8.0G चा आहे आणि 21% वापरलेला. tmpfs ओळी RAM मध्ये आहेत.
/वर mount असलेली ओळ म्हणजे तुमचा root EBS volume: Amazon Linux वर by default 8 GiB.Use%हा लक्ष ठेवायचा आकडा. 100% जवळ आला की programsNo space left on deviceने fail होऊ लागतात.tmpfsआणिdevtmpfsओळी disk वर नाही, RAM मध्ये असतात.
Figure 6. du तुम्ही दिलेल्या files आणि folders साठी "हे किती मोठं आहे?" सांगतो; df प्रत्येक filesystem साठी "disk किती भरली?" सांगतो. आधी df -h बघा, मग काय मोठं आहे ते du -sh * ने शोधा.
Worked example: disk भरली आहे.
- एक app
No space left on deviceने fail होतो. df -h /मध्येUse%100% दिसतो.sudo du -sh /var/*दाखवतो की/var/logसगळ्यात मोठा आहे.sudo du -sh /var/log/*एका प्रचंड log file कडे बोट दाखवतो. ती साफ किंवा rotate करा, किंवा EBS volume वाढवा.
11. mv: move आणि rename
का: Files move आणि rename करणं प्रत्येक setup चा भाग, copy केलेली key जागेवर ठेवणं सुद्धा.
mv file3 dir1
mv file2 notes.txt
mv dir2 dir1
mv file3 dir1file3लाdir1मध्ये नेतो.mv file2 notes.txtतिचं नाव बदलतो, कारणnotes.txtहा आधीचा folder नाही.mvfolders-rशिवाय हलवतो.- चुकीचं नाव दिलं तर
mv: cannot stat 'file99': No such file or directoryयेतं. mvआधीची file न विचारता overwrite करतो;mv -iआधी विचारतो.
पूर्ण chapter: Linux mv आणि rm Commands: Files move, rename आणि delete करा.
12. Passwordless SSH: servers ना ते का लागतं
का: खऱ्या setup मध्ये एक server बाकीच्यांना काम पाठवतो. Ansible controller वरून प्रत्येक managed server ला SSH ने connect होतो. Jenkins controller agent servers वर SSH ने builds सुरू करतो. (जुन्या documents मध्ये त्यांना master आणि slave म्हणतात.) प्रत्येक login साठी माणसाला password टाकावा लागला, तर काहीच automate होणार नाही.
Classroom line
I'm tired; how much can I do alone?
Class मधलं वाक्य
मी थकलो, मी एकटा किती काम करू?
Classroom line – हिंदी
"Thak gaya main, main akela kitna kaam karu?"
चार जणांची team डोळ्यासमोर आणा, जिथे तीन रजेवर आहेत आणि एकच सगळं काम करतो. प्रत्येक server वर login करू शकणारा controller मधे माणूस न ठेवता काम वाटून देतो.
ध्येय: linux1 ने स्वतःच्या key pair ने, password शिवाय, ec2-user म्हणून linux2 आणि linux3 वर login करायचं.
13. काय कुठे जातं: keys, authorized_keys आणि port 22
का: बहुतेक fail झालेल्या setups मध्ये key चुकीच्या server वर किंवा चुकीच्या file मध्ये जाते. कोणती file कुठे असते हे नेमकं माहीत असलं की ते टळतं.
Figure 7. linux1 key pair बनवतो; private key id_ed25519 linux1 वरच राहते, आणि एका ओळीची public key id_ed25519.pub linux2 आणि linux3 वरच्या ~/.ssh/authorized_keys मध्ये append होते. त्यांचे security groups linux1 कडून TCP 22 allow करतात.
- Key pair
linux1वर बनते:~/.sshमध्येid_ed25519(private) आणिid_ed25519.pub(public). - Private key
linux1कधीच सोडत नाही. ती ज्याच्याकडे असेल तो, तिची public key जिथे trusted आहे तिथे login करू शकतो. - Public key एक ओळ आहे. ती
linux2आणिlinux3वर तुम्ही ज्या user ने login कराल त्याच्या~/.ssh/authorized_keysच्या शेवटी जाते:/home/ec2-user/.ssh/authorized_keys. - Permissions:
~/.ssh700आणिauthorized_keys600हवी, आणि त्या user च्या मालकीची. याहून open असल्या तर SSH file कडे दुर्लक्ष करतो. - Port 22:
linux2आणिlinux3च्या security groups नीlinux1कडून inbound SSH, TCP 22 allow करायला हवं: त्याचा private IP/32सह, किंवा अजून चांगलं, source म्हणूनlinux1चा security group. Launch wizard चा default rule कुठूनही 22 allow करतो, म्हणून lab त्याने चालतो, पण खऱ्या setups मध्ये तो मर्यादित करा. - Root नाही,
ec2-userम्हणून login करा. Amazon Linux 2023 वर root च्याauthorized_keysमध्ये तुमची launch key आधीच असते, पण एका command मध्ये गुंडाळलेली, जी फक्तPlease login as the user "ec2-user" rather than the user "root".दाखवून connection बंद करते, आणि password logins बंद असतात. Admin कामासाठीec2-userआणिsudoवापरा.
14. कसं: ec2-user म्हणून step by step setup
का: Ansible आणि Jenkins सारखे tools password type करायला कोणी नसताना servers मध्ये login करतात. त्यांना नेमक्या याच steps लागतात.
linux1 वर key pair बनवा:
ssh-keygen -t ed25519
ls -la ~/.ssh
cat ~/.ssh/id_ed25519.pub
- तीन वेळा Enter दाबा: default file name, मग दोनदा रिकामा passphrase. (रिकाम्या passphrase मुळे scripts key वापरू शकतात. Laptop वर passphrase ठेवा.)
- आता
ls -la ~/.sshमध्ये-rw-------सहid_ed25519आणि-rw-r--r--सहid_ed25519.pubदिसतात. catpublic key दाखवतो:ssh-ed25519 AAAA...ने सुरू होणारी आणिec2-user@linux1सारख्या comment ने संपणारी एक ओळ. पूर्ण ओळ select करून copy करा. (Amazon Linux 2023 वर-tशिवायssh-keygenRSA key बनवतो,id_rsa.pub, ती पण अशीच चालते.)
Classroom line
When copying, the first letter often gets missed; don't make that mistake.
Class मधलं वाक्य
Copy करताना पहिलं अक्षर अनेकदा सुटतं, ती गडबड नाही करायची.
Classroom line – हिंदी
"Copy karte time ye 'L' miss ho jata hai, ye gadbad nahi karne ka."
linux2 वर ती जोडा (तिथे नेहमीसारखं तुमच्या .pem ने login करा):
vi ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
viमध्ये शेवटच्या ओळीवर जायलाG, खाली नवीन ओळ उघडायलाo, paste करा, Esc दाबा, आणि:wqलिहा.- आधीपासून असलेली ओळ delete करू नका. ती तुमच्या
.pemkey चा public भाग आहे; ती गेली तर तुम्ही स्वतःचlinux2मधून बाहेर lock व्हाल. chmodओळी permissions बरोबर असल्याची खात्री करतात. EC2 वर त्या आधीच बरोबर असतात, तरीही चालवा; त्यांनी काही बिघडत नाही.linux3वर हेच परत करा.
Classroom line
Don't fiddle with configuration files unnecessarily.
Class मधलं वाक्य
Configuration files मध्ये जास्त छेडछाड नाही करायची.
Classroom line – हिंदी
"Configuration files mein ched-chad zyada nahi karne ka."
linux2 आणि linux3 चे security groups तपासा: linux1 च्या private IP किंवा security group कडून SSH (22) साठी inbound rule.
परत linux1 वर, test करा:
ssh ec2-user@LINUX2_PRIVATE_IP
hostname
exit
ssh ec2-user@LINUX3_PRIVATE_IP 'df -h /'
- Console मध्ये दिसणारा private IP वापरा (किंवा
linux2वरhostname -I): servers एकाच VPC मध्ये आहेत, म्हणून traffic AWS च्या आतच राहतो. - पहिल्या वेळी SSH विचारतो
Are you sure you want to continue connecting (yes/no/[fingerprint])?.yesलिहा; server ची key~/.ssh/known_hostsमध्ये save होते आणि परत विचारलं जात नाही. - Password prompt येत नाही, आणि prompt
linux2होतो.exitपरतlinux1वर आणतो. - शेवटची ओळ
linux3वर एक command चालवते आणि resultlinux1वर दाखवते: Ansible सारखी tools अशीच चालतात.
Figure 8. Animation: linux1 port 22 ला connect करतो, linux2 ला linux1 ची public key सापडते आणि तो random challenge पाठवतो, linux1 private key ने तो sign करतो, आणि linux2 public key ने signature तपासून shell उघडतो. फक्त signature जातो.
ssh-copy-id तुमच्यासाठी key install करू शकतो, पण तेव्हाच जेव्हा तुम्ही target वर आधीच login करू शकता. नवीन EC2 servers मध्ये अजून ते शक्य नसतं, म्हणून वरचं copy आणि paste हाच मार्ग.
15. Trust एकाच दिशेने असतो
काय: linux1 linux2 वर login करू शकतो कारण linux1 ची public key linux2 च्या authorized_keys मध्ये आहे. उलट दिशेला काहीच परवानगी नाही: linux2 वरून linux1 वर ssh Permission denied (publickey) ने संपतो.
Figure 9. linux1 linux2 आणि linux3 वर login करतो; linux2 वरून linux1 नाकारला जातो. फक्त login ची परवानगी एका दिशेने आहे; session मध्ये data दोन्ही दिशांनी जातो.
- एका दिशेचा भाग म्हणजे login ची परवानगी. आत गेल्यावर session मध्ये data दोन्ही दिशांनी जातो: तुम्ही लिहिता, output परत येतो.
linux2ला पणlinux1वर login करायचं असेल, तरlinux2वरssh-keygenचालवा आणि त्याची public keylinux1च्याauthorized_keysमध्ये टाका.
16. Task: चार servers, दोन्ही दिशांनी
Task: चार servers, linux-1 ते linux-4. प्रत्येक server ने बाकी प्रत्येकावर password शिवाय login करायला हवं.
Figure 10. चार servers, प्रत्येक जोडी दोन्ही दिशांनी: 4 × 3 = 12 one-way paths. प्रत्येक server ची स्वतःची key pair, बाकी तिघांच्या public keys असलेली authorized_keys file, आणि बाकीच्यांसाठी उघडा port 22.
Worked example: paths मोजा.
- प्रत्येक server बाकी तिघांवर login करतो, स्वतःवर नाही: प्रत्येक server चे 3 paths.
- 4 servers × 3 = 12 one-way paths, 4 × 4 = 16 नाही.
- प्रत्येक server वर:
ssh-keygenएकदा चालवा, आणि बाकी तिघांच्या public keys त्याच्याauthorized_keysमध्ये टाका (प्रत्येक server वर 3 ओळी, एकूण 12). - प्रत्येक server वरून test करा, उदा.
linux-1वरून:ssh ec2-user@IP_OF_LINUX_2 hostname, मगlinux-3आणिlinux-4. - आकडा झपाट्याने वाढतो: 10 servers दोन्ही दिशांनी म्हणजे 10 × 9 = 90 paths. म्हणूनच खरे setups एक controller (10 servers साठी 9 paths) आणि keys वाटायला tools वापरतात.
Classroom line
Do it once and you'll never forget it.
Class मधलं वाक्य
एकदा हे करून बघा, मग आयुष्यभर विसरणार नाही.
Classroom line – हिंदी
"Ek bar ye karke dekho, uske baad lifetime me nahi bhuloge."
Classroom line
It's hard until you learn it; after that it's child's play.
Class मधलं वाक्य
शिकेपर्यंत ती ब्रह्मविद्या आहे, शिकल्यानंतर तो मुलांचा खेळ आहे.
Classroom line – हिंदी
"Seekhne tak wo Brahma Vidya hai, seekhne ke baad wo bacchon ka khel hai."
17. माहीत असायला हवेत असे ports
का: प्रत्येक security group rule आणि प्रत्येक connection error एक port सांगतो. नेहमीचे ports माहीत असले की कोणती service गुंतली आहे ते लगेच कळतं.
Port number 0 ते 65,535 पर्यंत असतो (65,536 ports). 0 ते 1023 हे standard services साठीचे well-known ports (0 स्वतः reserved आहे). Ports कसे चालतात ते Ports: IP server पर्यंत, port app पर्यंत मध्ये आहे.
| Port | Service | कुठे भेटतो |
|---|---|---|
| 21 | FTP | जुनं file transfer, passwords साध्या text मध्ये पाठवतो |
| 22 | SSH | Linux servers वर login; हा chapter |
| 25 | SMTP | Servers email पाठवताना |
| 53 | DNS | Name lookups; Route 53 चं नाव याच port वरून |
| 80 | HTTP | Encryption शिवाय websites |
| 443 | HTTPS | Encryption सह websites |
| 3306 | MySQL / MariaDB | Databases |
Classroom line
Your neighbour won't come to your interview; you'll have to answer yourself.
Class मधलं वाक्य
बाजूचा interview ला येत नाही, तेव्हा उत्तर तुम्हालाच द्यावं लागेल.
Classroom line – हिंदी
"Baaju wala interview me nahi aata, tab aapko hi answer dena padega."
18. काही चुकीचं दिसलं तर
का: प्रत्येक error साखळीतली एक कडी दाखवतो: network, user, key किंवा permissions. तो नीट वाचला की पूर्ण setup परत करावा लागत नाही.
Figure 11. Port 22 वर timeout म्हणजे security group. Permission denied (publickey) म्हणजे चुकीचा user, तुटलेली key ओळ, किंवा खूप open permissions किंवा root च्या मालकीची file. Fingerprint प्रश्न पहिल्या वेळी normal. IP परत वापरल्यावर बदललेली host key ssh-keygen -R ने सुटते.
- Port 22 वर
Connection timed out: target च्या security group मध्ये या server कडून 22 allow नाही. Rule जोडा. Permission denied (publickey):- चुकीचा user वापरला: Amazon Linux वर
ec2-user, Ubuntu वरubuntu,rootनाही. - Key च्या ओळीची पहिली अक्षरं सुटली, किंवा ती दोन ओळींत paste झाली. ती एक पूर्ण ओळ हवी.
~/.ssh700पेक्षा जास्त open आहे, किंवाauthorized_keysइतरांना writable आहे (उदा.666): SSH ती नाकारतो.- तुम्ही
authorized_keyssudoने बनवली, म्हणून ती root च्या मालकीची आहे.sudo chown ec2-user:ec2-user ~/.ssh/authorized_keysने दुरुस्त करा.
- चुकीचा user वापरला: Amazon Linux वर
REMOTE HOST IDENTIFICATION HAS CHANGED: नवीन server ला आधी वापरलेला IP मिळाला.linux1वरssh-keygen -R THAT_IPचालवा, मग परत connect करा.- तरीही अडकलात:
ssh -v ec2-user@IPप्रत्येक step दाखवतो, कुठली key दिली तेही. - Zoom नंतर
viगडबडलेला दिसतो: Ctrl+L दाबा, किंवा:q!ने बाहेर पडून परत उघडा. dufile साठी0दाखवतो: file रिकामी आहे.ls -lbytes मध्ये size दाखवतो.
Ravindra Bagale's Tip
Private key ला घराच्या किल्लीसारखं जपा: ती ज्या machine वर बनली तिथेच राहते, chat किंवा email मध्ये कधीच paste होत नाही, आणि Git repository मध्ये कधीच जात नाही. Public key बिनधास्त फिरवा. Private key कधी leak झाली, तर ती ज्या ज्या authorized_keys मध्ये जोडली होती तिथून तिची public ओळ delete करा, आणि नवीन pair बनवा.
19. पूर्ण class एका page वर
- एकाच key pair आणि security group ने तीन
t3.microservers launch करा; 3/3 status checks (system, instance, attached EBS) होईपर्यंत थांबा. - Server दुसऱ्या Region मध्ये न्यायला: AMI बनवा, copy करा, copy मधून launch करा, आणि तिथे key pair आणि security group परत set करा.
- Ctrl+D सह
cat >, जोडायला>>, files जोडायलाcat a b > c, उलटं करायलाtac, वेळांसाठीstat(EC2 वर UTC), बनवायला किंवा update करायलाtouch. vi: लिहायलाiकिंवाo, Esc, मग:wqकिंवा:q!.nano: Ctrl+O, Ctrl+X.ls -ltype, permissions, owner, size आणि वेळ दाखवतो;ls -ltrनवीन item खाली ठेवतो;ls -lahidden files दाखवतो; Amazon Linux वरllम्हणजेls -l.mkdir -pपूर्ण साखळी बनवतो;cd ../..दोन levels वर नेतो; नुसतंcdhome ला;pwdतुम्ही कुठे आहात ते सांगतो.du -shतुम्ही दिलेल्या गोष्टीचा size (-ssummarize,-hhuman-readable);df -hप्रत्येक disk किती भरली ते दाखवतो.mvmove आणि rename करतो, folders सकट.- Passwordless SSH:
linux1वरssh-keygen, त्याची.pubओळ बाकीच्यांवरच्याec2-userच्याauthorized_keysमध्ये append,700/600, आणिlinux1कडून port 22 उघडा. - Private key तिच्या server वरून कधी हलत नाही. Root नाही,
ec2-userम्हणून login करा. - Trust एकाच दिशेने. चार servers दोन्ही दिशांनी म्हणजे 4 × 3 = 12 paths.
- Ports 0 ते 65,535: 22 SSH, 53 DNS, 80 HTTP, 443 HTTPS.
20. Hands-on lab: linux1 पासून linux2 पर्यंत passwordless SSH
हा lab का. हा lab linux1 पासून linux2 पर्यंत one-way trust बनवतो, वाटेत प्रत्येक file आणि permission तपासतो, आणि काहीही type न करता linux2 वर command चालवून ते सिद्ध करतो.
- Servers ना नावं द्या
- Command:
sudo hostnamectl set-hostname linux1 - काय दिसेल: काहीच नाही.
- Check करा: Logout करून परत login केल्यावर prompt
ec2-user@linux1दाखवतो. दुसऱ्या server वरlinux2ने तेच करा. - का: सारख्या servers वर आपण कुठे आहोत हे prompt वरूनच कळतं. Key ची command चुकीच्या server वर चालवणं ही इथली सगळ्यात नेहमीची चूक.
- Command:
- linux1 ला linux2 चा port 22 मिळतो ते तपासा
- Command:
ssh ec2-user@LINUX2_PRIVATE_IP - काय दिसेल: लगेच
Permission denied (publickey...), timeout नाही. - Check करा: लगेच आलेला "denied" म्हणजे network ठीक;
Connection timed outम्हणजे security group port 22 अडवतोय. - का: Private IP वापरा: servers VPC च्या आत बोलतात. आधी network तपासलं की network चे प्रॉब्लेम key च्या प्रॉब्लेमपासून वेगळे होतात.
- Command:
- linux1 वर key pair बनवा
- Command:
ssh-keygen -t ed25519 - काय दिसेल: तीन प्रश्न; प्रत्येकाला Enter. मग
Your identification has been saved in /home/ec2-user/.ssh/id_ed25519. - Check करा:
ls -la ~/.sshमध्येid_ed25519(-rw-------) आणिid_ed25519.pubदिसतात. - का: रिकामा passphrase म्हणजेच passwordless. Private key कधीच
linux1सोडत नाही; फक्त.pubfile share होते.
- Command:
- Public key copy करा
- Command:
cat ~/.ssh/id_ed25519.pub - काय दिसेल:
ssh-ed25519 AAAAने सुरू होणारी आणिec2-user@linux1ने संपणारी एक ओळ. - Check करा: पूर्ण ओळ select करून copy करा.
- का: पूर्ण ओळ, एकसंध, म्हणजे public key. दोन तुकडे झालेली ओळ चालत नाही.
- Command:
- linux2 वर जोडा
- Command:
vi ~/.ssh/authorized_keys - काय दिसेल: Launch ला वापरलेली key असलेली file उघडते.
oदाबा, ओळ paste करा, Esc,:wq. - Check करा:
wc -l ~/.ssh/authorized_keys→2 - का: हे
linux2वर करा, laptop वरून त्यात login करून. आधीची ओळ ठेवा, नाहीतर तुमच्या laptop ची key चालणं बंद होईल.
- Command:
- linux2 वर permissions तपासा
- Command:
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys - काय दिसेल: काहीच नाही.
- Check करा:
ls -ld ~/.sshdrwx------ने सुरू होतं;ls -l ~/.ssh/authorized_keys-rw-------ने. - का: इतर लिहू शकत असतील तर SSH
authorized_keysदुर्लक्षित करतो. हे सहसा आधीच बरोबर असतं; set केल्याने ते कारण बाद होतं.
- Command:
- linux1 वरून login करा
- Command:
ssh ec2-user@LINUX2_PRIVATE_IP - काय दिसेल: पहिल्यांदा:
Are you sure you want to continue connecting (yes/no/[fingerprint])?yestype करा. मगec2-user@linux2prompt. - Check करा: Password विचारला नाही.
linux1वर परत यायलाexittype करा. - का: yes
linux2ची identity~/.ssh/known_hostsमध्ये save करतो, म्हणजे पुढच्या logins ना बदललेला server ओळखता येतो.
- Command:
- दूरून command चालवा
- Command:
ssh ec2-user@LINUX2_PRIVATE_IP 'df -h /' - काय दिसेल:
linux2चा disk usage, आणि तुम्हीlinux1वरच राहता. - Check करा: Prompt अजूनही
linux1सांगतो. - का: Automation tools हेच करतात: कोणी type न करता एका server वरून अनेक servers वर commands चालवतात.
- Command:
- Trust one way आहे हे सिद्ध करा
- करा:
linux2वरssh ec2-user@LINUX1_PRIVATE_IPचालवा. - काय दिसेल:
Permission denied (publickey...) - Check करा:
linux1च्याauthorized_keysमध्येlinux2ची स्वतःची key नाही. - का: प्रत्येक दिशेला स्वतःचा key pair आणि स्वतःची
authorized_keysओळ लागते. काम संपल्यावर servers terminate करा.
- करा:
21. Try at home
Try at home
Task 1: passwordless SSH
linux1,linux2आणिlinux3launch करा, आणि प्रत्येकाचं host namehostnamectlने set करा.linux1वरून बाकी दोघांवरec2-userम्हणून passwordless SSH set करा, मगlinux1वरूनssh ec2-user@LINUX2_PRIVATE_IP 'df -h /'चालवा.linux2वरूनlinux1वरsshकरून बघा आणि error वाचा. मग तेही चालू करा.
Task 2: मुद्दाम बिघडवा
linux2वरchmod 666 ~/.ssh/authorized_keysचालवा आणिlinux1वरून परत try करा. परत600करा.- 22 साठीचा security group rule काढा आणि timeout बघा. परत जोडा.
Task 3: commands
- एका command ने
dir2/dir3/dir4/dir5बनवा,dir5मध्ये जा, मग एकाcdने परतdir3ला या. - तुमच्या home folder मध्ये
du -sh *आणिdf -h /चालवा. Root volume किती वापरला आहे? file7आणिfile8एक मिनिटाच्या अंतराने बनवा, आणिls -ltआणिls -ltrने त्यांचा क्रम तपासा.
Recap
थोडक्यात
- Server दुसऱ्या Region मध्ये AMI copy म्हणून जातो; key pair आणि security group तिथे परत set होतात.
ls -l,ls -ltrआणिls -laसांगतात "इथे काय आहे, शेवटचं काय बदललं, आणि काय hidden आहे".mkdir -pfolders ची साखळी बनवतो;cd ../..,cdआणिpwdतुम्हाला फिरवतात आणि तुम्ही कुठे आहात ते सांगतात.du -shfiles आणि folders चा size सांगतो;df -hdisk किती भरली ते दाखवतो.- Passwordless SSH साठी source server वर key pair, target वर
ec2-userच्याauthorized_keysमध्ये तिची public key700/600सह, आणि त्यांच्यामध्ये उघडा port 22 लागतो. - Trust एकाच दिशेने, private key जागीच राहते, आणि चार servers दोन्ही दिशांनी म्हणजे 12 paths.
सराव Tasks
Lisboa Tiles हा लिस्बन मधला सिरॅमिक टाइल्स व्यवसाय आहे. João Silva त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे EUR मध्ये मोजले जातात आणि AWS resources eu-west-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 11
सोपं SSH key file सुरक्षित करा
का: इतर users वाचू शकणारी key file SSH वापरत नाही.
काय करायचं: lisboatiles-key.pem फक्त owner ला वाचता येईल असं करा (write नाही, इतरांना काहीच नाही).
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं EC2 server ला connect करा
का: Key file सह SSH हा Linux EC2 ला login करण्याचा standard मार्ग.
काय करायचं: lisboatiles-key.pem key वापरून 13.47.20.5 server वर ec2-user म्हणून login करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं SSH चा port
का: Security group rules ला योग्य port हवा.
काय करायचं: SSH साठी security group ने कोणता TCP port उघडावा?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं मोकळी disk जागा तपासा
का: Disk 100% भरल्यास apps व databases बंद पडतात.
काय करायचं: सगळ्या mounted disks ची मोकळी व वापरलेली जागा human-readable units मध्ये दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Folder चा size तपासा
का: du folder किती जागा वापरतो ते सांगतो, -h ने सोप्या units मध्ये.
काय करायचं: /var/www/lisboatiles चा एकूण size एका line मध्ये human-readable units मध्ये दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Memory तपासा
का: RAM भरल्यास server slow होतो किंवा apps बंद होतात.
काय करायचं: वापरलेली व मोकळी memory human-readable units मध्ये दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Server वर file upload करा
का: scp SSH वरून files copy करतो, तोच key व user वापरतो.
काय करायचं: तुमच्या laptop वरून index.html ला 13.47.20.5 वरच्या /home/ec2-user/ मध्ये lisboatiles-key.pem वापरून upload करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Public key दुसऱ्या server वर copy करा
का: यानंतर त्या server ला password शिवाय SSH करता येतं.
काय करायचं: तुमची public key 10.0.3.25 वरच्या ec2-user ला copy करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम SSH key pair बनवा
का: Servers मध्ये passwordless SSH साठी पहिल्या server वर key pair लागते.
काय करायचं: ed25519 प्रकारची नवी SSH key pair बनवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड मोठ्या files शोधा
का: Disk भरल्यावर आधी मोठ्या files शोधा.
काय करायचं: /var खाली कुठेही 100 MB पेक्षा मोठ्या files शोधा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड इतर Regions block करा (SCP)
का: Data rules aws:RequestedRegion ने लागू करतात.
काय करायचं: aws:RequestedRegion eu-west-1 नसेल तेव्हा * वर ec2:* deny करा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
झटपट उजळणी cards
हा lesson दोन मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR त्याचा lesson उघडतो.










अजून cards: Ravi Sir's Cards.