Ravindra BagaleCourses & study guides English

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 आणि nano survival kit
  • ls -l वाचणं, ls -lt आणि ls -ltr ने sort, ls -a आणि ls -la ने hidden files, आणि ll
  • mkdir -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 नाव द्या.

कसं:

  1. Number of instances: 3 ठेवून एकदम launch करा, किंवा एक launch करून मग आणखी दोन. Launch च्या 7 steps तुमचा पहिला EC2 instance मध्ये आहेत.
  2. Console मध्ये प्रत्येकाचं नाव बदला (Name column मधली pencil click करा).
  3. 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?.
  4. SSH आणि तुमच्या key ने login करा, किंवा browser मधल्या EC2 Instance Connect ने.

Classroom line

Small mistakes become big ones.

अनेक servers च्या lab मध्ये मदत करणाऱ्या दोन गोष्टी:

  1. .pem की .ppk: .pem हा OpenSSH format, Windows, Mac आणि Linux वरची ssh command तो वापरते. .ppk हा PuTTY चा format; PuTTYgen एकाचा दुसऱ्यात convert करतो. जास्त माहिती Step 4: Key pair मध्ये.
  2. मी कुठल्या 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.

EC2 server दुसऱ्या Region मध्ये:AMI, copy, launch1. Create imageServer ची AMIMumbai मध्ये2. Copy AMISingapore ला:नवीन AMI ID3. Launchcopy मधूनSingapore मध्ये4. तपासा, मगजुना stop किंवाterminate कराAMI सोबत copy होत नाहीत, नवीन Regionमध्ये set करा:• Key pair: तिथे नवीन बनवा, किंवा तीच publickey import करा (key pairs एका Region चेअसतात).• Security group: परत बनवा (port 22, 80 ...). •IP addresses: नवीन server ला नवीन मिळतात.• Copy केलेल्या AMI चे स्वतःचे snapshotsSingapore मध्ये असतात; delete करेपर्यंतत्यांचं bill येतं.

Figure 1. Mumbai मध्ये AMI बनवा, ती Singapore ला copy करा (copy ला नवीन AMI ID मिळतो), copy मधून launch करा, तपासा, मग जुना server stop किंवा terminate करा. Key pair, security group आणि IP addresses नवीन Region मध्ये परत set करा.

कसं:

  1. Mumbai मध्ये instance select करा, मग Actions > Image and templates > Create image. AMI Available होईपर्यंत थांबा. (AMI AWS Elastic IP, AMI आणि EBS Snapshots सोप्या भाषेत मध्ये समजावली आहे.)
  2. AMIs मध्ये ती select करा, मग Actions > Copy AMI, आणि destination Region म्हणून Asia Pacific (Singapore) निवडा.
  3. Console Singapore ला switch करा. Copy ला नवीन AMI ID असतो; ती Available होईपर्यंत थांबा.
  4. Launch instance from AMI. Singapore मध्ये असलेली key pair निवडा (नवीन बनवा, किंवा तुमची आधीची public key import करा) आणि लागणारे ports असलेला security group.
  5. नवीन 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
  1. cat > file1 तुम्ही लिहिलेलं file मध्ये लिहितो; save करायला रिकाम्या ओळीवर Ctrl+D दाबा. Ctrl+C command रद्द करतो आणि file रिकामी किंवा अर्धवट राहू शकते.
  2. >> शेवटी जोडतो; एकच > content बदलून टाकतो.
  3. cat file1 file2 > file3 दोन files जोडून तिसरी बनवतो; tac ओळी उलट्या दाखवतो.
  4. stat Access, Modify, Change आणि Birth दाखवतो. EC2 वर घड्याळ UTC मध्ये असतं, म्हणून भारतीय वेळेसाठी 5:30 मिळवा.
  5. आधीच्या file वर touch Access आणि Modify आत्ताचे करतो (Change मागोमाग); नवीन नावावर तो रिकामी file बनवतो. Content ला तो कधीच हात लावत नाही.

Classroom line

Never press Ctrl+C here, it's Ctrl+D.

सविस्तर स्पष्टीकरण: cat आणि > चा trap, तीन timestamps आणि cat आणि tac.

4. vi आणि nano survival kit

का: Section 14 मध्ये तुम्ही authorized_keys edit कराल, आणि अनेक servers वर vi हाच एकमेव editor install असतो.

vi survival kit: तीन modes Normal mode vi इथे उघडतो; keys म्हणजे commands (arrows हलवतात, dd ओळ deleteकरतो) i / o Insert mode खाली -- INSERT --: आता text लिहा Esc Normal mode : Command line :wq save and quit :q! quit, no save :wq! force save, quit Enter nano: थेट लिहा; Ctrl+O save, Ctrl+X बाहेर (बाहेर पडतानाsave साठी Y, Enter). vi मध्ये हरवलात? Esc दोनदा, मग :q! आणि Enter. काहीही save होत नाही, आणितुम्ही परत prompt वर.

Figure 2. vi normal mode मध्ये उघडतो. Typing साठी i किंवा o insert mode मध्ये नेतात, Esc परत आणतो, आणि : ने :wq, :q! आणि :wq! साठी command line उघडते. nano ला modes नाहीत: Ctrl+O save, Ctrl+X बाहेर.

कसं, vi मध्ये:

  1. vi notes.txt file normal mode मध्ये उघडतो: keys म्हणजे commands, text नाही.
  2. Cursor जवळ लिहायला i दाबा, किंवा खाली नवीन ओळ उघडायला o. खाली -- INSERT -- दिसतं.
  3. Text लिहा, मग normal mode मध्ये परत जायला Esc दाबा.
  4. Save करून बाहेर पडायला :wq आणि Enter, save न करता बाहेर :q!, किंवा force save साठी :wq! (उदा. तुमच्याच read-only file वर).
  5. Normal mode मध्ये उपयोगी: G शेवटच्या ओळीवर नेतो, dd चालू ओळ delete करतो.

nano मध्ये: थेट लिहा; Ctrl+O save करतो, Ctrl+X बाहेर नेतो (save विचारलं तर Y आणि Enter).

Classroom line

Work calmly, with presence of mind.

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 ते कळतं (त्याबद्दल जास्त).

ls -l ची एक ओळ वाचणं -rw-r--r--. 1 ec2-user ec2-user 103 Mar 1 10:00 file2 - type: - file, d folder, l link rw-r--r-- permissions: owner, group, others . . = SELinux label (Amazon Linux) 1 links ची संख्या ec2-user owner ec2-user group 103 size, bytes मध्ये (-h: K, M, G) Mar 1 10:00 शेवटचा बदल (Modify time) file2 नाव ls -l एका ओळीत एक item दाखवतो. Amazon Linux वर ll हा त्याचा shortcut आहे(colours सह ls -l).

Figure 3. ls -l ची एक ओळ: type, permissions, Amazon Linux वरचा SELinux dot, links, owner, group, bytes मध्ये size, शेवटच्या बदलाची वेळ आणि नाव.

  1. Type: - file, d directory, l link.
  2. Permissions: owner, group आणि others साठी rwx चे तीन गट. Amazon Linux वर त्यानंतरचा . म्हणजे file ला SELinux label आहे.
  3. Links, owner, group.
  4. Bytes मध्ये size. K, M आणि G बघायला -h जोडा (ls -lh).
  5. शेवटच्या बदलाची वेळ, मग नाव.

6. वेळेनुसार sort: ls -lt आणि ls -ltr

का: काही बिघडलं की पहिला प्रश्न असतो "शेवटची कुठली file बदलली?"

कसं:

touch file7
touch file8
ls -lt
ls -ltr
  1. ls -lt Modify time नुसार sort करतो, नवीन आधी: file8 सगळ्यात वर.
  2. ls -ltr क्रम उलटा करतो, नवीन शेवटी: file8 सगळ्यात खाली, तुमच्या prompt च्या अगदी वर, जिथे तुमची नजर आधीच असते. ls -lrt हीच command आहे; letters कुठल्याही क्रमाने चालतात.
  3. 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
  1. ls -a सगळं दाखवतो, . (हा folder), .. (वरचा folder), .bashrc, .bash_profile आणि .ssh सकट.
  2. ls -la तीच list long format मध्ये देतो: .ssh च्या permissions तपासायला वापरा.
  3. ll हा shortcut (alias) आहे. Amazon Linux वर त्याचा अर्थ colours सह ls -l; Ubuntu वर ls -alF. तुमच्या server वर त्याचा अर्थ बघायला alias ll लिहा.
  4. la -la सारखी typo command not found देते: error चा पहिला शब्द वाचा.

Classroom line

Hidden files and directories start with a dot.

रोज वापराल असे ls options ls फक्त नावं, A ते Z   file1 file2 notes ls -l long list: एका ओळीत एक item   -rw-r--r--. 1 ec2-user ... file1 ls -lt नवीन आधी (Modify time नुसार)   notes file2 file1 ls -ltr नवीन शेवटी; ls -lrt सारखंच   file1 file2 notes ls -a hidden नावं पण (. ने सुरू)   . .. .bashrc .ssh file1 ls -la hidden पण, long list मध्ये   drwx------. ... .ssh ls -lh sizes K, M, G मध्ये   ... 4.9K ... big.bin ll ls -l चा shortcut (alias)   Amazon Linux; Ubuntu वर ll = ls -alF Letters कुठल्याही क्रमाने जोडता येतात: ls -ltr = ls -lrt = ls -l -t -r.Orange = servers वर सगळ्यात जास्त वापरले जाणारे दोन.

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
  1. mkdir -p पूर्ण साखळी एकदम बनवतो. -p शिवाय mkdir dir9/dir8 No such file or directory ने fail होतो, कारण dir9 नाहीच. -p सह तीच command परत चालवली तरी error येत नाही.
  2. cd dir2/dir3/dir4/dir5 एका step मध्ये चार levels खाली नेतो; pwd पूर्ण path दाखवतो.
  3. cd ../.. दोन levels वर नेतो. नुसतं cd नेहमी home ला नेतं (/home/ec2-user).
  4. Path नसेल तर cd dir1/dir2 No such file or directory ने fail होतो. Error वाचा, मग ls आणि pwd ने path तपासा.

Classroom line

How do we know which directory we're in?

mkdir -p, cd आणि pwd, step by step $ mkdir -p dir2/dir3/dir4/dir5 /home/ec2-user/ ● └─ dir2/ └─ dir3/ └─ dir4/ └─ dir5/ $ pwd → /home/ec2-user एका command ने चारही folders बनतात, प्रत्येक आधीच्याच्या आत. $ cd dir2/dir3/dir4/dir5 $ pwd → /home/ec2-user/dir2/dir3/dir4/dir5 एका step मध्ये चार levels खाली. pwd तुम्ही कुठे आहात ते दाखवतो. $ cd ../.. $ pwd → /home/ec2-user/dir2/dir3 .. म्हणजे वरचा folder. ../.. दोन levels वर: परत dir3 मध्ये. $ cd $ pwd → /home/ec2-user नुसतं cd तुम्हाला कुठूनही home ला नेतं. Orange = तुम्ही आत्ता कुठे आहात

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.

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 *
  1. -s म्हणजे summarize: आतल्या प्रत्येक folder साठी एक ओळ न देता, प्रत्येक item ची एक total.
  2. -h म्हणजे human-readable: blocks ऐवजी K, M आणि G.
  3. du -sh * चालू folder मधल्या प्रत्येक item ची एक ओळ देतो (* hidden items सोडतो).
  4. रिकामी file 0 दाखवते. छोटी file 4.0K दाखवते, कारण disk ची जागा 4 KB च्या blocks मध्ये वापरली जाते; ls -l अचूक bytes दाखवतो.
  5. /var/log सारखे तुम्हाला वाचता न येणारे folders: sudo du -sh /var/log वापरा.
A black terminal with two columns: sizes 0 or 4.0K on the left, and the names dir1, dir2, f1 to f4, file-007, file-123, file-7, file-xyz, file1, file2, file3 and file8 on the right.

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 /
A black terminal with the df -h table: Filesystem, Size, Used, Avail, Use% and Mounted on, with rows for devtmpfs, tmpfs, efivarfs, /dev/nvme0n1p1 of 8.0G mounted on /, /dev/nvme0n1p128 on /boot/efi, and more tmpfs lines.

Console: t3.micro वर df -h: root volume /dev/nvme0n1p1 8.0G चा आहे आणि 21% वापरलेला. tmpfs ओळी RAM मध्ये आहेत.

  1. / वर mount असलेली ओळ म्हणजे तुमचा root EBS volume: Amazon Linux वर by default 8 GiB.
  2. Use% हा लक्ष ठेवायचा आकडा. 100% जवळ आला की programs No space left on device ने fail होऊ लागतात.
  3. tmpfs आणि devtmpfs ओळी disk वर नाही, RAM मध्ये असतात.
du vs df: एक folder, की पूर्ण diskdu = तुम्ही दिलेल्या गोष्टीचा disk वापर$ du -sh dir216K dir2$ du -sh *8.0K big.bin16K dir24.0K file1-s = summarize: प्रत्येक item ची एक total-h = human-readable: K, M, GDisk कशाने भरली ते शोधायला वापराdf = disk free, प्रत्येक filesystem चा$ df -h /Filesystem Size Used Avail Use%/dev/nvme0n1p1 8.0G 1.7G 6.4G 21%प्रत्येक disk चा Size, Used, Avail आणि Use%/ म्हणजे root volume (by default 8 GiB)Use% 100% जवळ = साफ करायची किंवा वाढवायची वेळछोट्या tmpfs ओळी सोडा: त्या RAM आहेतआधी df -h ने disk भरली आहे का ते बघा, मग folders मध्ये du-sh * ने काय मोठं आहे ते शोधा.

Figure 6. du तुम्ही दिलेल्या files आणि folders साठी "हे किती मोठं आहे?" सांगतो; df प्रत्येक filesystem साठी "disk किती भरली?" सांगतो. आधी df -h बघा, मग काय मोठं आहे ते du -sh * ने शोधा.

Worked example: disk भरली आहे.

  1. एक app No space left on device ने fail होतो.
  2. df -h / मध्ये Use% 100% दिसतो.
  3. sudo du -sh /var/* दाखवतो की /var/log सगळ्यात मोठा आहे.
  4. 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
  1. mv file3 dir1 file3 ला dir1 मध्ये नेतो.
  2. mv file2 notes.txt तिचं नाव बदलतो, कारण notes.txt हा आधीचा folder नाही.
  3. mv folders -r शिवाय हलवतो.
  4. चुकीचं नाव दिलं तर mv: cannot stat 'file99': No such file or directory येतं.
  5. 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?

चार जणांची 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 कुठे असते हे नेमकं माहीत असलं की ते टळतं.

Passwordless SSH: काय कुठे जातं linux1 (login करणारा) $ ssh-keygen -t ed25519 ~/.ssh मध्ये दोन files बनवतो: id_ed25519 private key: linux1 सोडत नाही id_ed25519.pub public key: एक ओळ, copy करायला safe .pub ओळ copy linux2 ~/.ssh/authorized_keys + linux1 ची ओळ (append) chmod 700 ~/.ssh; 600 file linux3 ~/.ssh/authorized_keys + linux1 ची तीच ओळ chmod 700 ~/.ssh; 600 file linux2 आणि linux3 चे security groups: inbound SSH, TCP 22,linux1 कडून Source = linux1's private IP/32, or linux1's security group. Then: sshec2-user@<linux2 private IP>.

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 करतात.

  1. Key pair linux1 वर बनते: ~/.ssh मध्ये id_ed25519 (private) आणि id_ed25519.pub (public).
  2. Private key linux1 कधीच सोडत नाही. ती ज्याच्याकडे असेल तो, तिची public key जिथे trusted आहे तिथे login करू शकतो.
  3. Public key एक ओळ आहे. ती linux2 आणि linux3 वर तुम्ही ज्या user ने login कराल त्याच्या ~/.ssh/authorized_keys च्या शेवटी जाते: /home/ec2-user/.ssh/authorized_keys.
  4. Permissions: ~/.ssh 700 आणि authorized_keys 600 हवी, आणि त्या user च्या मालकीची. याहून open असल्या तर SSH file कडे दुर्लक्ष करतो.
  5. 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 मध्ये तो मर्यादित करा.
  6. 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
  1. तीन वेळा Enter दाबा: default file name, मग दोनदा रिकामा passphrase. (रिकाम्या passphrase मुळे scripts key वापरू शकतात. Laptop वर passphrase ठेवा.)
  2. आता ls -la ~/.ssh मध्ये -rw------- सह id_ed25519 आणि -rw-r--r-- सह id_ed25519.pub दिसतात.
  3. cat public key दाखवतो: ssh-ed25519 AAAA... ने सुरू होणारी आणि ec2-user@linux1 सारख्या comment ने संपणारी एक ओळ. पूर्ण ओळ select करून copy करा. (Amazon Linux 2023 वर -t शिवाय ssh-keygen RSA key बनवतो, id_rsa.pub, ती पण अशीच चालते.)

Classroom line

When copying, the first letter often gets missed; don't make that mistake.

linux2 वर ती जोडा (तिथे नेहमीसारखं तुमच्या .pem ने login करा):

vi ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  1. vi मध्ये शेवटच्या ओळीवर जायला G, खाली नवीन ओळ उघडायला o, paste करा, Esc दाबा, आणि :wq लिहा.
  2. आधीपासून असलेली ओळ delete करू नका. ती तुमच्या .pem key चा public भाग आहे; ती गेली तर तुम्ही स्वतःच linux2 मधून बाहेर lock व्हाल.
  3. chmod ओळी permissions बरोबर असल्याची खात्री करतात. EC2 वर त्या आधीच बरोबर असतात, तरीही चालवा; त्यांनी काही बिघडत नाही.
  4. linux3 वर हेच परत करा.

Classroom line

Don't fiddle with configuration files unnecessarily.

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 /'
  1. Console मध्ये दिसणारा private IP वापरा (किंवा linux2 वर hostname -I): servers एकाच VPC मध्ये आहेत, म्हणून traffic AWS च्या आतच राहतो.
  2. पहिल्या वेळी SSH विचारतो Are you sure you want to continue connecting (yes/no/[fingerprint])?. yes लिहा; server ची key ~/.ssh/known_hosts मध्ये save होते आणि परत विचारलं जात नाही.
  3. Password prompt येत नाही, आणि prompt linux2 होतो. exit परत linux1 वर आणतो.
  4. शेवटची ओळ linux3 वर एक command चालवते आणि result linux1 वर दाखवते: Ansible सारखी tools अशीच चालतात.
Password शिवाय key login कसं चालतं linux1 linux2 id_ed25519 authorized_keys private key linux1 ची public key 1. linux1 port 22 वर linux2 ला connect करतो linux1 → linux2: port 22 ला connect Security group नी linux1 कडून 22 allow करायला हवं, नाहीतर timeout. 2. linux2 ला authorized_keys मध्ये linux1 ची public keyसापडते linux2 → linux1: random challenge तो sign करायला एक random challenge परत पाठवतो. 3. linux1 private key ने challenge sign करतो linux1 → linux2: फक्त signature फक्त signature जातो. Private key linux1 सोडत नाही. 4. linux2 public key ने signature तपासतो जुळतो: password शिवाय ec2-user म्हणून shell उघडतो. $ whoami (on linux2) ec2-user $ exit (back to linux1)

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) ने संपतो.

Trust एकाच दिशेने असतो linux1 ssh चालतो: linux1 ची key linux2च्या file मध्ये linux2 linux1 ssh चालतो: तीच key linux3 च्याfile मध्ये linux3 linux2 → linux1: Permission denied (publickey) फक्त login ची परवानगी एका दिशेने आहे. Login झाल्यावर session मध्ये dataदोन्ही दिशांनी जातो (तुम्ही लिहिता, output परत येतो). linux2 → linux1 साठी पण: linux2 वर ssh-keygen, आणि त्याची .pub ओळ linux1 च्याauthorized_keys मध्ये.

Figure 9. linux1 linux2 आणि linux3 वर login करतो; linux2 वरून linux1 नाकारला जातो. फक्त login ची परवानगी एका दिशेने आहे; session मध्ये data दोन्ही दिशांनी जातो.

  1. एका दिशेचा भाग म्हणजे login ची परवानगी. आत गेल्यावर session मध्ये data दोन्ही दिशांनी जातो: तुम्ही लिहिता, output परत येतो.
  2. linux2 ला पण linux1 वर login करायचं असेल, तर linux2 वर ssh-keygen चालवा आणि त्याची public key linux1 च्या authorized_keys मध्ये टाका.

16. Task: चार servers, दोन्ही दिशांनी

Task: चार servers, linux-1 ते linux-4. प्रत्येक server ने बाकी प्रत्येकावर password शिवाय login करायला हवं.

चार servers, दोन्ही दिशांनी: 12 one-waypathslinux-1linux-2linux-3linux-4मोजणीप्रत्येक server login करतोबाकी 3 वर, स्वतःवर नाही:4 × 3 = 12(4 × 4 = 16 नाही)प्रत्येक server वर:• 1 ssh-keygen (स्वतःची key pair)• authorized_keys मध्ये 3 ओळी: बाकी 3 च्या .pub• SG: बाकीच्यांकडून port 22

Figure 10. चार servers, प्रत्येक जोडी दोन्ही दिशांनी: 4 × 3 = 12 one-way paths. प्रत्येक server ची स्वतःची key pair, बाकी तिघांच्या public keys असलेली authorized_keys file, आणि बाकीच्यांसाठी उघडा port 22.

Worked example: paths मोजा.

  1. प्रत्येक server बाकी तिघांवर login करतो, स्वतःवर नाही: प्रत्येक server चे 3 paths.
  2. 4 servers × 3 = 12 one-way paths, 4 × 4 = 16 नाही.
  3. प्रत्येक server वर: ssh-keygen एकदा चालवा, आणि बाकी तिघांच्या public keys त्याच्या authorized_keys मध्ये टाका (प्रत्येक server वर 3 ओळी, एकूण 12).
  4. प्रत्येक server वरून test करा, उदा. linux-1 वरून: ssh ec2-user@IP_OF_LINUX_2 hostname, मग linux-3 आणि linux-4.
  5. आकडा झपाट्याने वाढतो: 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.

Classroom line

It's hard until you learn it; after that it's child's play.

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.

18. काही चुकीचं दिसलं तर

का: प्रत्येक error साखळीतली एक कडी दाखवतो: network, user, key किंवा permissions. तो नीट वाचला की पूर्ण setup परत करावा लागत नाही.

Servers मधला ssh fail झाला तर port 22: Connection timed out → Target च्या security group मध्ये या server कडून 22 allow नाही Permission denied (publickey) → चुकीचा user (root vs ec2-user), key ची ओळ कापलेली किंवा दोन ओळींततुटलेली, → ~/.ssh किंवा authorized_keys खूप open (777, 666) किंवा root च्यामालकीची Are you sure ... (yes/no/[fingerprint])? → पहिल्या login ला normal: yes लिहा; ते ~/.ssh/known_hosts मध्येsave होतं REMOTE HOST IDENTIFICATION HAS CHANGED → A new server reused the IP: ssh-keygen -R <IP>, then connectagain Debug from linux1 with ssh -v ec2-user@<IP>: it prints each step,including which key it offered.

Figure 11. Port 22 वर timeout म्हणजे security group. Permission denied (publickey) म्हणजे चुकीचा user, तुटलेली key ओळ, किंवा खूप open permissions किंवा root च्या मालकीची file. Fingerprint प्रश्न पहिल्या वेळी normal. IP परत वापरल्यावर बदललेली host key ssh-keygen -R ने सुटते.

  1. Port 22 वर Connection timed out: target च्या security group मध्ये या server कडून 22 allow नाही. Rule जोडा.
  2. Permission denied (publickey):
    1. चुकीचा user वापरला: Amazon Linux वर ec2-user, Ubuntu वर ubuntu, root नाही.
    2. Key च्या ओळीची पहिली अक्षरं सुटली, किंवा ती दोन ओळींत paste झाली. ती एक पूर्ण ओळ हवी.
    3. ~/.ssh 700 पेक्षा जास्त open आहे, किंवा authorized_keys इतरांना writable आहे (उदा. 666): SSH ती नाकारतो.
    4. तुम्ही authorized_keys sudo ने बनवली, म्हणून ती root च्या मालकीची आहे. sudo chown ec2-user:ec2-user ~/.ssh/authorized_keys ने दुरुस्त करा.
  3. REMOTE HOST IDENTIFICATION HAS CHANGED: नवीन server ला आधी वापरलेला IP मिळाला. linux1 वर ssh-keygen -R THAT_IP चालवा, मग परत connect करा.
  4. तरीही अडकलात: ssh -v ec2-user@IP प्रत्येक step दाखवतो, कुठली key दिली तेही.
  5. Zoom नंतर vi गडबडलेला दिसतो: Ctrl+L दाबा, किंवा :q! ने बाहेर पडून परत उघडा.
  6. du file साठी 0 दाखवतो: file रिकामी आहे. ls -l bytes मध्ये 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 वर

  1. एकाच key pair आणि security group ने तीन t3.micro servers launch करा; 3/3 status checks (system, instance, attached EBS) होईपर्यंत थांबा.
  2. Server दुसऱ्या Region मध्ये न्यायला: AMI बनवा, copy करा, copy मधून launch करा, आणि तिथे key pair आणि security group परत set करा.
  3. Ctrl+D सह cat >, जोडायला >>, files जोडायला cat a b > c, उलटं करायला tac, वेळांसाठी stat (EC2 वर UTC), बनवायला किंवा update करायला touch.
  4. vi: लिहायला i किंवा o, Esc, मग :wq किंवा :q!. nano: Ctrl+O, Ctrl+X.
  5. ls -l type, permissions, owner, size आणि वेळ दाखवतो; ls -ltr नवीन item खाली ठेवतो; ls -la hidden files दाखवतो; Amazon Linux वर ll म्हणजे ls -l.
  6. mkdir -p पूर्ण साखळी बनवतो; cd ../.. दोन levels वर नेतो; नुसतं cd home ला; pwd तुम्ही कुठे आहात ते सांगतो.
  7. du -sh तुम्ही दिलेल्या गोष्टीचा size (-s summarize, -h human-readable); df -h प्रत्येक disk किती भरली ते दाखवतो.
  8. mv move आणि rename करतो, folders सकट.
  9. Passwordless SSH: linux1 वर ssh-keygen, त्याची .pub ओळ बाकीच्यांवरच्या ec2-user च्या authorized_keys मध्ये append, 700/600, आणि linux1 कडून port 22 उघडा.
  10. Private key तिच्या server वरून कधी हलत नाही. Root नाही, ec2-user म्हणून login करा.
  11. Trust एकाच दिशेने. चार servers दोन्ही दिशांनी म्हणजे 4 × 3 = 12 paths.
  12. 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 चालवून ते सिद्ध करतो.

  1. Servers ना नावं द्या
    • Command: sudo hostnamectl set-hostname linux1
    • काय दिसेल: काहीच नाही.
    • Check करा: Logout करून परत login केल्यावर prompt ec2-user@linux1 दाखवतो. दुसऱ्या server वर linux2 ने तेच करा.
    • का: सारख्या servers वर आपण कुठे आहोत हे prompt वरूनच कळतं. Key ची command चुकीच्या server वर चालवणं ही इथली सगळ्यात नेहमीची चूक.
  2. 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 च्या प्रॉब्लेमपासून वेगळे होतात.
  3. 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 सोडत नाही; फक्त .pub file share होते.
  4. Public key copy करा
    • Command: cat ~/.ssh/id_ed25519.pub
    • काय दिसेल: ssh-ed25519 AAAA ने सुरू होणारी आणि ec2-user@linux1 ने संपणारी एक ओळ.
    • Check करा: पूर्ण ओळ select करून copy करा.
    • का: पूर्ण ओळ, एकसंध, म्हणजे public key. दोन तुकडे झालेली ओळ चालत नाही.
  5. 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 चालणं बंद होईल.
  6. linux2 वर permissions तपासा
    • Command: chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
    • काय दिसेल: काहीच नाही.
    • Check करा: ls -ld ~/.ssh drwx------ ने सुरू होतं; ls -l ~/.ssh/authorized_keys -rw------- ने.
    • का: इतर लिहू शकत असतील तर SSH authorized_keys दुर्लक्षित करतो. हे सहसा आधीच बरोबर असतं; set केल्याने ते कारण बाद होतं.
  7. linux1 वरून login करा
    • Command: ssh ec2-user@LINUX2_PRIVATE_IP
    • काय दिसेल: पहिल्यांदा: Are you sure you want to continue connecting (yes/no/[fingerprint])? yes type करा. मग ec2-user@linux2 prompt.
    • Check करा: Password विचारला नाही. linux1 वर परत यायला exit type करा.
    • का: yes linux2 ची identity ~/.ssh/known_hosts मध्ये save करतो, म्हणजे पुढच्या logins ना बदललेला server ओळखता येतो.
  8. दूरून command चालवा
    • Command: ssh ec2-user@LINUX2_PRIVATE_IP 'df -h /'
    • काय दिसेल: linux2 चा disk usage, आणि तुम्ही linux1 वरच राहता.
    • Check करा: Prompt अजूनही linux1 सांगतो.
    • का: Automation tools हेच करतात: कोणी type न करता एका server वरून अनेक servers वर commands चालवतात.
  9. 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

  1. linux1, linux2 आणि linux3 launch करा, आणि प्रत्येकाचं host name hostnamectl ने set करा.
  2. linux1 वरून बाकी दोघांवर ec2-user म्हणून passwordless SSH set करा, मग linux1 वरून ssh ec2-user@LINUX2_PRIVATE_IP 'df -h /' चालवा.
  3. linux2 वरून linux1 वर ssh करून बघा आणि error वाचा. मग तेही चालू करा.

Task 2: मुद्दाम बिघडवा

  1. linux2 वर chmod 666 ~/.ssh/authorized_keys चालवा आणि linux1 वरून परत try करा. परत 600 करा.
  2. 22 साठीचा security group rule काढा आणि timeout बघा. परत जोडा.

Task 3: commands

  1. एका command ने dir2/dir3/dir4/dir5 बनवा, dir5 मध्ये जा, मग एका cd ने परत dir3 ला या.
  2. तुमच्या home folder मध्ये du -sh * आणि df -h / चालवा. Root volume किती वापरला आहे?
  3. file7 आणि file8 एक मिनिटाच्या अंतराने बनवा, आणि ls -lt आणि ls -ltr ने त्यांचा क्रम तपासा.

Recap

थोडक्यात

  1. Server दुसऱ्या Region मध्ये AMI copy म्हणून जातो; key pair आणि security group तिथे परत set होतात.
  2. ls -l, ls -ltr आणि ls -la सांगतात "इथे काय आहे, शेवटचं काय बदललं, आणि काय hidden आहे".
  3. mkdir -p folders ची साखळी बनवतो; cd ../.., cd आणि pwd तुम्हाला फिरवतात आणि तुम्ही कुठे आहात ते सांगतात.
  4. du -sh files आणि folders चा size सांगतो; df -h disk किती भरली ते दाखवतो.
  5. Passwordless SSH साठी source server वर key pair, target वर ec2-user च्या authorized_keys मध्ये तिची public key 700/600 सह, आणि त्यांच्यामध्ये उघडा port 22 लागतो.
  6. Trust एकाच दिशेने, private key जागीच राहते, आणि चार servers दोन्ही दिशांनी म्हणजे 12 paths.

सराव Tasks

या scenario बद्दल

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 नाही, इतरांना काहीच नाही).

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. 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 करा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं SSH चा port

का: Security group rules ला योग्य port हवा.

काय करायचं: SSH साठी security group ने कोणता TCP port उघडावा?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं मोकळी disk जागा तपासा

का: Disk 100% भरल्यास apps व databases बंद पडतात.

काय करायचं: सगळ्या mounted disks ची मोकळी व वापरलेली जागा human-readable units मध्ये दाखवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Folder चा size तपासा

का: du folder किती जागा वापरतो ते सांगतो, -h ने सोप्या units मध्ये.

काय करायचं: /var/www/lisboatiles चा एकूण size एका line मध्ये human-readable units मध्ये दाखवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Memory तपासा

का: RAM भरल्यास server slow होतो किंवा apps बंद होतात.

काय करायचं: वापरलेली व मोकळी memory human-readable units मध्ये दाखवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. 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 करा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Public key दुसऱ्या server वर copy करा

का: यानंतर त्या server ला password शिवाय SSH करता येतं.

काय करायचं: तुमची public key 10.0.3.25 वरच्या ec2-user ला copy करा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम SSH key pair बनवा

का: Servers मध्ये passwordless SSH साठी पहिल्या server वर key pair लागते.

काय करायचं: ed25519 प्रकारची नवी SSH key pair बनवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड मोठ्या files शोधा

का: Disk भरल्यावर आधी मोठ्या files शोधा.

काय करायचं: /var खाली कुठेही 100 MB पेक्षा मोठ्या files शोधा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड इतर Regions block करा (SCP)

का: Data rules aws:RequestedRegion ने लागू करतात.

काय करायचं: aws:RequestedRegion eu-west-1 नसेल तेव्हा * वर ec2:* deny करा.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

झटपट उजळणी cards

हा lesson दोन मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR त्याचा lesson उघडतो.

तुलना card: du vs df. du: Disk usage: files आणि folders नी वापरलेली जागा. df: Disk free: पूर्ण filesystems ची जागा.
तुलना: du vs df · PNG download करा
तुलना card: root vs ec2-user. root: पूर्ण power असलेला super user. ec2-user: Amazon Linux चा default login user.
तुलना: root vs ec2-user · PNG download करा
उजळणी card: Disk usage: du -sh आणि df -h. Full disk logs, uploads आणि databases थांबवतो. df -h पूर्ण disk वरची मोकळी जागा दाखवतो. du -sh एका file किंवा folder ची size. Disk full आहे का ते df ने, कशाने भरली ते du ने. सगळ्यात मोठा log folder:
उजळणी card: Disk usage: du -sh आणि df -h · PNG download करा
उजळणी card: ssh-keygen ने passwordless SSH. Scripts आणि admins ना passwords किंवा .pem copy न करता servers मध्ये जायचं असतं. ssh-keygen key pair बनवतो. Public key target वरच्या authorized_keys मध्ये जाते. A वर generate करा, id_rsa.pub B च्या ~/.ssh/authorized_keys मध्ये जोडा, .ssh ला 700 आणि file ला 600. A वरून:
उजळणी card: ssh-keygen ने passwordless SSH · PNG download करा
उजळणी card: ls -lt आणि ls -ltr ने sort. सगळ्यात नवीन log किंवा आत्ताच बदललेली file हवी असते. -t वेळेनुसार sort (नवीन आधी). -r उलटं, म्हणजे नवीन सगळ्यात खाली. मोठ्या folders मध्ये -ltr वापरा म्हणजे नवीन prompt जवळ. नवीन logs:
उजळणी card: ls -lt आणि ls -ltr ने sort · PNG download करा
उजळणी card: Number ने माहीत हवे असे ports. Security groups आणि errors port numbers मध्ये बोलतात. Port म्हणजे एका service साठी server वरचा दरवाजा number. SG मध्ये फक्त गरजेचे ports उघडा. सामान्य ports:
उजळणी card: Number ने माहीत हवे असे ports · PNG download करा
मुलाखत card: Disk full आहे. कशाने भरली ते कसं शोधता?. df -h कोणती disk ते सांगतो; folders वर du -sh मोठा शोधतो. Folder by folder आत जा. Commands:
मुलाखत card: Disk full आहे. कशाने भरली ते कसं शोधता? · PNG download करा
मुलाखत card: Passwordless SSH trust एकाच दिशेने का?. फक्त तुमची public key असलेला server तुमच्या private key वर विश्वास ठेवतो. B चा A वर विश्वास म्हणजे A चा B वर नाही. 4 servers सगळ्या दिशांनी = 4 × 3 = 12 paths.
मुलाखत card: Passwordless SSH trust एकाच दिशेने का? · PNG download करा
मुलाखत card: Passwordless SSH तरीही password विचारतो. काय तपासता?. Permissions: ~/.ssh 700 आणि authorized_keys 600, user च्या मालकीचे. इतर लिहू शकतील अशा files मधल्या keys SSH ignore करतो. Fix:
मुलाखत card: Passwordless SSH तरीही password विचारतो. काय तपासता? · PNG download करा
मुलाखत card: EC2 दुसऱ्या Region मध्ये कसा हलवता?. AMI बनवा, नवीन Region मध्ये copy करा, तिथे launch करा. AMIs regional; copy केल्यावर target मध्ये मिळतो. ap-south-1 › Copy AMI › us-east-1 › Launch.
मुलाखत card: EC2 दुसऱ्या Region मध्ये कसा हलवता? · PNG download करा

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