უფასო Ubuntu VPS: შექმნიდან SSH-კავშირამდე
ეს მაგალითი ქმნის ახალ Oracle Cloud Always Free AMD ინსტანსს Ubuntu 24.04-ით და ამოწმებს SSH-წვდომას. საჭიროა დამტკიცებული ანგარიში, შესაბამისი კვოტა, თავისუფალი სიმძლავრე და ქსელის მართვის უფლება. პროცედურა არ არის აპლიკაციის წარმადობის ტესტი.
VPSuntu · განახლებულია · წაკითხვა დაახლოებით 5 წუთში
გზამკვლევის შინაარსი
მოამზადეთ ანგარიში და სამუშაო გარემო
გამოიყენეთ ძირითადი რეგიონი, შესაბამისი VM.Standard.E2.1.Micro ფორმა, 1 GB RAM და Ubuntu 24.04 x86 იმიჯი. დაგჭირდებათ Compute, networking და console connection-ის მართვის უფლებები. თუ უფასო ფორმისთვის ადგილი არ არის, პროცედურა შეაჩერეთ; ფასიან ფორმაზე შემთხვევით ნუ გადახვალთ.
ბრძანებების სამუშაო სადგურის ნაწილი განკუთვნილია Bash-ისა და OpenSSH-ისთვის Linux-ზე, macOS-ზე ან WSL-ში. მოამზადეთ საჯარო IPv4, რომლიდანაც SSH-ს გამოიყენებთ. წინასწარ წაიკითხეთ უფასო პროგრამების კვოტები და ხარჯები.
შექმენით გასაღები სამუშაო სადგურზე
ქვემოთ მოცემული ბრძანება ქმნის RSA 3072 გასაღებს. თუ ამ სახელით ფაილი უკვე არსებობს, აირჩიეთ სხვა სახელი და შემდეგ ბრძანებებშიც შეცვალეთ; არსებულ გასაღებს ნუ გადააწერთ. გამოიყენეთ საიდუმლო ფრაზა.
mkdir -p ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -b 3072 -f ~/.ssh/oci-ubuntu-free
chmod 600 ~/.ssh/oci-ubuntu-free
cat ~/.ssh/oci-ubuntu-free.pubOracle-ში ატვირთეთ მხოლოდ .pub ფაილი. პირადი გასაღები სამუშაო სადგურზე შეინახეთ; არ ჩასვათ cloud-init-ში და არ გააგზავნოთ მიმოწერაში. მომხმარებლის შესვლის გასაღები და სერვერის host key სხვადასხვა რამაა.
რესურსების აღრიცხვაში ჩაწერეთ compartment, რეგიონი, უნიკალური სახელი და შემდგომში OCID. სახელის დამთხვევა ზუსტი რესურსის იდენტიფიკატორს ვერ ცვლის.
მოამზადეთ გამოყოფილი საჯარო ქსელი
მაგალითში გამოიყენება VCN 10.20.0.0/16 და რეგიონული საჯარო subnet 10.20.1.0/24. ჯერ გადაამოწმეთ, რომ ეს დიაპაზონები არსებულ ქსელებს არ ემთხვევა. შექმენით და ჩართეთ internet gateway; subnet-ის route table-ში მიუთითეთ 0.0.0.0/0 ამ gateway-ზე. VM-ს საჯარო IPv4 სჭირდება.
დაამატეთ stateful ingress: წყარო თქვენი მიმდინარე საჯარო IPv4 /32, პროტოკოლი TCP, source port All და destination port 22. შეინარჩუნეთ საჭირო egress და ICMP წესები. თუ საწყისი security list SSH-ს მთელი ინტერნეტისთვის ხსნის, შეცვალეთ იგი. სხვა მიბმული security list ან NSG კვლავ შეიძლება ფართო წვდომას იძლეოდეს.
ეს მაგალითი დამატებით NSG-ს, NAT gateway-ს ან load balancer-ს არ ქმნის. სახლის IP-ის შეცვლისას განაახლეთ /32 წესი. მხოლოდ guest firewall-ის შეცვლა OCI-ის ქსელის წესს ვერ ჩაანაცვლებს.
შექმენით ზუსტად შესაბამისი Ubuntu ინსტანსი
Compute → Instances → Create instance-ში გადაამოწმეთ ძირითადი რეგიონი და compartment. მაგალითად დაარქვით ubuntu-free-ssh.
პატარა ეკრანზე ყველა სვეტის სანახავად ცხრილი ჰორიზონტალურად გადაახვიეთ.
| პარამეტრი | მაგალითის მნიშვნელობა |
|---|---|
| იმიჯი | Ubuntu 24.04, x86, შესაბამისი უფასო იმიჯი |
| ფორმა | VM.Standard.E2.1.Micro, 1 GB RAM |
| Boot volume | 50 GB, შესაბამისი performance და დარჩენილი საერთო კვოტა |
| ქსელი | მომზადებული საჯარო subnet და public IPv4 |
| SSH key | მხოლოდ მომზადებული .pub ფაილი |
| დამატებითი რესურსები | ამ მაგალითში არ ემატება |
Oracle-ის 200 GB საერთო boot/block კვოტაში არსებული მოცულობებიც ითვლება. ფასის შეფასება, რომელსაც საცდელი კრედიტი ფარავს, მუდმივ უფასო შესაბამისობას არ ადასტურებს.
ქვემოთ მოცემული cloud-config შეინახეთ ფაილად და მიუთითეთ Advanced options → Management → Initialization-ში. მასში პირადი გასაღები არ ჩაწეროთ.
#cloud-config
ssh:
emit_keys_to_console: trueშექმნის შემდეგ ჩაწერეთ instance OCID, boot volume OCID და public IPv4. თუ ადგილი არ არის, შეჩერდით; შეუმოწმებელი ფასიანი ალტერნატივა არ აირჩიოთ.
სანდო კონსოლიდან გადაამოწმეთ სერვერის იდენტობა
OCI-ში გახსენით ზუსტად ჩაწერილი ინსტანსი. შესაბამისი უფლებებით გამოიყენეთ Console connection → Launch Cloud Shell connection, ან Console history → View current history და შეინახეთ პირველი ჩატვირთვის SSH HOST KEY FINGERPRINTS: გასაღების ტიპი და SHA256 ანაბეჭდი.
ეს უნდა იყოს guest სისტემის SSH host key. OCI console connection-ის რესურსის ანაბეჭდი მხოლოდ OCI-ის console endpoint-ს ადასტურებს და guest SSH-ის იდენტობას არ ცვლის. თქვენი .pub გასაღების ანაბეჭდიც სხვა რამაა.
თუ guest-ის სანდო ანაბეჭდი ვერ იპოვეთ, გამოიყენეთ პროვაიდერის სათანადო recovery გზა. უცნობი ქსელიდან მიღებული ssh-keyscan შედეგი თავისთავად იდენტობის დამადასტურებელი არ არის.
შედით SSH-ით და წაიკითხეთ საწყისი მდგომარეობა
სამუშაო სადგურზე 203.0.113.20 შეცვალეთ რეალური საჯარო მისამართით. პირველად დაკავშირებისას შეადარეთ ნაჩვენები ტიპი და SHA256 ანაბეჭდი სანდო კონსოლში შენახულს. მომხმარებელია ubuntu და არა opc.
ssh -o StrictHostKeyChecking=ask -i ~/.ssh/oci-ubuntu-free ubuntu@203.0.113.20სერვერზე შეამოწმეთ cloud-init-ის დასრულება, იმიჯი, არქიტექტურა, რესურსები და SSH.
cloud-init status --wait
cat /etc/os-release
dpkg --print-architecture
free -h
df -h /
sudo ss -lntp
sudo iptables -Sწარმატებული შესვლა არ ნიშნავს, რომ HTTP-საიტი გამოქვეყნებულია ან 1 GB RAM თქვენს აპლიკაციას ჰყოფნის. შეცდომის შემთხვევაში ჯერ საწყისი გარემო გამოიკვლიეთ.
განაახლეთ სისტემა და შეამოწმეთ განმეორებითი შესვლა
sudo apt update
sudo apt upgradeშეინარჩუნეთ არსებული SSH-სესია და მეორე ტერმინალიდან ხელახლა შედით. ამ ახალ, საცდელ ინსტანსზე შეამოწმეთ reboot-იც და შემდეგ ისევ კავშირი და სერვისები.
OCI Ubuntu-ზე UFW არ ჩართოთ: პროვაიდერის iptables და iSCSI წესები უნდა შენარჩუნდეს. HTTP-ის გამოქვეყნებას საჭირო პორტები OCI-ისა და guest-ის ორივე დონეზე სჭირდება. საწყის HTTPS-ინსტრუქციაში დაიცავით Oracle-ის გამონაკლისი.
პატარა ეკრანზე ყველა სვეტის სანახავად ცხრილი ჰორიზონტალურად გადაახვიეთ.
| სიმპტომი | შემოწმება |
|---|---|
| კავშირის ვადის ამოწურვა | Public IP, route, gateway და მიმდინარე /32 წესი |
| Permission denied (publickey) | ubuntu მომხმარებელი და სწორ private key-სთან დაკავშირებული public key |
| Host key-ის შეუთავსებლობა | სანდო console record და ზუსტი ინსტანსი |
| cloud-init-ის შეცდომა | შესაბამისი logs, repository და პირველი ჩატვირთვის მდგომარეობა |
დეტალური ნაბიჯებისთვის გახსენით SSH-კავშირის დიაგნოსტიკა.
შეინახეთ აღდგენის მასალა და დაასრულეთ ექსპერიმენტი
მონაცემებისა და rebuild ინსტრუქციის დამოუკიდებელი ასლი შეინახეთ VM-ის გარეთ. გამოსცადეთ ფაილების აღდგენა; ასლის არსებობა აღდგენის წარმატებას არ ადასტურებს.
დასრულებისას ჯერ გაიტანეთ საჭირო მონაცემები და გადაამოწმეთ ასლი. შემდეგ Terminate გაუშვით ზუსტად იმ instance OCID-ზე, რომელიც აღრიცხეთ. Boot volume შეიძლება შენარჩუნდეს: სამუდამოდ წაშალეთ მხოლოდ დადასტურებული, აღარ საჭირო მოცულობა, რომლის მონაცემების გატანაც შემოწმებულია.
ცალ-ცალკე შეამოწმეთ შენარჩუნებული volumes, backups, IP მისამართები და console connection რესურსები. ქსელი წაშალეთ მხოლოდ მაშინ, როცა სხვა სერვისი აღარ იყენებს. ერთი ექსპერიმენტის გამო მთელი ანგარიშის რესურსები არ გააუქმოთ.
ხშირი კითხვები
რატომ არ იქმნება ინსტანსი, თუ კვოტა მაქვს?
კვოტა ანგარიშის უფლებაა, ხოლო capacity რეგიონში ხელმისაწვდომ რესურსს ნიშნავს. ერთი მეორეს არ უზრუნველყოფს.
უნდა ავტვირთო პირადი SSH-გასაღები?
არა. ინსტანსს public .pub გასაღები გადაეცემა. პირადი გასაღები თქვენს სამუშაო სადგურზე რჩება.
ოფიციალური წყაროები
- დოკუმენტაცია 1: docs.oracle.com
- დოკუმენტაცია 2: docs.oracle.com
- დოკუმენტაცია 3: docs.oracle.com
- დოკუმენტაცია 4: docs.oracle.com
- დოკუმენტაცია 5: docs.oracle.com
- დოკუმენტაცია 6: docs.oracle.com
- დოკუმენტაცია 7: docs.oracle.com
- დოკუმენტაცია 8: docs.oracle.com
- დოკუმენტაცია 9: docs.oracle.com
- დოკუმენტაცია 10: docs.cloud-init.io
- დოკუმენტაცია 11: docs.oracle.com
- დოკუმენტაცია 12: documentation.ubuntu.com
- დოკუმენტაცია 13: docs.oracle.com