კონტაქტები

Linux-თან დაკავშირება ssh-ის საშუალებით. ჰოსტინგი SSH–ით - რატომ არის ის სასარგებლო? უარყოთ დისტანციური წვდომა სუპერმომხმარებლისთვის

SSH არის სისტემის ადმინისტრირების ერთ-ერთი ყველაზე მნიშვნელოვანი ინსტრუმენტი.

SSH, ან Secure Shell, არის პროტოკოლი, რომელიც გამოიყენება დისტანციურ სისტემებთან უსაფრთხოდ დასაკავშირებლად. ეს არის ყველაზე გავრცელებული გზა დისტანციური Linux და Unix-ის მსგავს სერვერებთან დასაკავშირებლად (მაგალითად, VPS).

ეს სახელმძღვანელო მოიცავს SSH-ის გამოყენებას დისტანციურ სისტემასთან დასაკავშირებლად.

ძირითადი სინტაქსი

Linux-ში SSH-ის გამოყენებით დისტანციურ სისტემასთან დასაკავშირებლად, არსებობს ამავე სახელწოდების ინსტრუმენტი - ssh.

ძირითადი ბრძანების ტიპი:

ssh remote_host

ამ მაგალითში, ფრაზა "remote_host" ცვლის ჰოსტის IP მისამართს ან დომენის სახელს, რომელთანაც გსურთ დაკავშირება.

ეს ბრძანება ვარაუდობს, რომ მომხმარებლის სახელი დისტანციურ და ადგილობრივ სისტემებზე იგივეა.

თუ დისტანციურ სისტემას აქვს სხვა მომხმარებლის სახელი, თქვენ უნდა მიუთითოთ იგი შემდეგი სინტაქსის გამოყენებით:

ssh მომხმარებლის სახელი@remotehost

სერვერთან დაკავშირების შემდეგ, თქვენ უნდა მიუთითოთ პაროლი ავთენტიფიკაციისთვის.

პაროლის ნაცვლად გამოსაყენებელი გასაღებების შექმნის პროცედურა მოგვიანებით იქნება აღწერილი.

ადგილობრივ სესიაზე დასაბრუნებლად, უბრალოდ აკრიფეთ:

როგორ მუშაობს SSH?

SSH მუშაობს კლიენტის პროგრამის ssh სერვერთან დაკავშირებით.

ზემოთ მოყვანილ ბრძანებებში ssh არის კლიენტის პროგრამა. ssh სერვერი უკვე მუშაობს მითითებულ დისტანციურ ჰოსტზე.

თუ ssh სერვერი უკვე არ მუშაობს VPS-ზე, დააჭირეთ ღილაკს "Console Access", რომელიც მდებარეობს სერვერის გვერდზე. ეს გამოვა შესვლის ეკრანი. გამოიყენეთ თქვენი რწმუნებათა სიგელები შესასვლელად.

ზოგადად, ssh სერვერის გაშვების პროცესი დამოკიდებულია Linux დისტრიბუციაზე, რომელსაც იყენებთ.

Ubuntu-ზე, VPS-ზე ssh სერვერის დასაწყებად, თქვენ უნდა შეიყვანოთ:

სუდო სერვისის sshd დაწყება

SSH-ის დაყენება

როდესაც თქვენ შეცვლით SSH პარამეტრებს, იცვლება ssh სერვერის პარამეტრებიც.

Ubuntu-ზე მთავარი SSH კონფიგურაციის ფაილი მდებარეობს /etc/ssh/sshd_config.

შექმენით ამ ფაილის მიმდინარე ვერსიის სარეზერვო ასლი მის რედაქტირებამდე:

Sudo cp /etc/ssh/sshd_config(,.bak)

გახსენით იგი ტექსტური რედაქტორით:

Sudo nano /etc/ssh/sshd_config

ზოგიერთი პარამეტრი განსაკუთრებულ ყურადღებას მოითხოვს, მაგალითად:

ეს ხაზი განსაზღვრავს რომელ პორტს მოუსმენს ssh სერვერი კავშირებისთვის. ნაგულისხმევად ეს არის პორტი 22.

მიზანშეწონილია გამოიყენოთ არასტანდარტული პორტი სერვერის დასაცავად პორტის შემთხვევითი სკანირებისგან. ჩვენ მოგვიანებით გაჩვენებთ, თუ როგორ უნდა დაუკავშირდეთ ახალ პორტს.

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

HostKey ხაზები მიუთითებს სად მდებარეობს ჰოსტის გასაღებები (უფრო მოგვიანებით).

SyslogFacility
LogLevel INFO

ეს ხაზები შეიცავს ჟურნალის პარამეტრებს და განსაზღვრავს ჟურნალის დონეს.

თუ რაიმე პრობლემა შეგექმნათ SSH-თან დაკავშირებით, რეკომენდებულია ჟურნალის დონის გაზრდა (რაც ზრდის დაწერილი მონაცემების რაოდენობას).

შესვლაGraceTime 120
PermitRootLogin დიახ
StrictModes დიახ

ეს პარამეტრები შეიცავს სარეგისტრაციო ინფორმაციას.

შესვლაGraceTimeმიუთითებს წამების რაოდენობაზე, რომლის დროსაც კავშირი უნდა შენარჩუნდეს ავტორიზაციის გარეშე.

შენიშვნა: დააყენეთ ეს ხაზი ოდნავ უფრო მეტ დროზე, ვიდრე ჩვეულებრივ საჭიროა რეგისტრაციისთვის.

PermitRootLoginგანსაზღვრავს, შეგიძლიათ თუ არა შესვლა, როგორც root მომხმარებელი.

უმეტეს შემთხვევაში, მომხმარებლის შექმნის შემდეგ ამაღლებული პრივილეგიებით (su ან sudo) და ssh-ის საშუალებით დაკავშირების შესაძლებლობით, რეკომენდებულია ამ ხაზის "არა"-ზე დაყენება.

მკაცრი რეჟიმებიარის უსაფრთხოების მოწყობილობა, რომელიც უარს იტყვის შესვლაზე, თუ ავტორიზაციის ფაილები საჯაროდ იკითხება.

ეს ხელს უშლის შესვლის მცდელობებს, თუ კონფიგურაციის ფაილები არ არის დაცული.

X11 გადამისამართება დიახ
X11DisplayOffset 10

ეს პარამეტრები აკონფიგურირებს ფუნქციას სახელწოდებით X11 Forwarding, რომელიც საშუალებას გაძლევთ ნახოთ დისტანციური სისტემის გრაფიკული მომხმარებლის ინტერფეისი (GUI) ლოკალურ სისტემაზე.

ეს პარამეტრი უნდა იყოს ჩართული როგორც ადგილობრივ, ასევე დისტანციურ მანქანებზე; ფუნქციის გამოსაყენებლად, თქვენ უნდა გაიაროთ კლიენტი და –X ვარიანტი.

ამ ფაილის რედაქტირების შემდეგ არ დაგავიწყდეთ ssh სერვერის გადატვირთვა განხორციელებული ცვლილებების გასააქტიურებლად:

sudo სერვისის sshd გადატვირთვა

გარდა ამისა, განხორციელებული ცვლილებები საფუძვლიანად უნდა შემოწმდეს, რათა დარწმუნდეთ, რომ ყველაფერი მუშაობს ისე, როგორც მოსალოდნელია.

თუ პრობლემები შეგექმნათ, გახსოვდეთ, რომ თქვენ ასევე შეგიძლიათ შეხვიდეთ ღილაკის "Console Access" გამოყენებით.

შესვლა SSH კლავიშების გამოყენებით

გასაღებიზე დაფუძნებული ავთენტიფიკაცია ხშირად ბევრად უფრო უსაფრთხოა, ვიდრე პაროლის გამოყენებით დისტანციურ სისტემაში შესვლა.

როგორ მუშაობს გასაღებიზე დაფუძნებული ავტორიზაცია?

კლავიშზე დაფუძნებული ავთენტიფიკაცია გულისხმობს გასაღებების წყვილის შექმნას - კერძო და საჯარო.

პირადი გასაღები განთავსებულია კლიენტის მანქანაზე და დაცული და საიდუმლოდ უნდა იყოს დაცული.

საჯარო გასაღები შეიძლება მიეცეს ნებისმიერს და განთავსდეს ნებისმიერ სერვერზე, რომელსაც წვდომა სჭირდება.

გასაღების წყვილის გამოყენებით დაკავშირების მცდელობისას, სერვერი იყენებს საჯარო გასაღებს კლიენტის კომპიუტერისთვის შეტყობინების შესაქმნელად, რომლის წაკითხვაც შესაძლებელია მხოლოდ პირადი გასაღებით.

შემდეგ კლიენტის კომპიუტერი აგზავნის შესაბამის პასუხს სერვერზე, რომელიც აცნობებს სერვერს, რომ კლიენტი ლეგიტიმურია.

კლავიშების კონფიგურაციის შემდეგ, მთელი პროცესი ავტომატურად ხდება ფონზე.

SSH კლავიშების შექმნა

SSH კლავიშები უნდა შეიქმნას კომპიუტერზე, საიდანაც გსურთ კავშირის დამყარება (ჩვეულებრივ, ლოკალური კომპიუტერი).

ბრძანების ხაზში ჩაწერეთ:

ssh-keygen -t rsa

ნაგულისხმევი პარამეტრების მისაღებად დააჭირეთ Enter-ს. გასაღებები შეიქმნება ~/.ssh/id_rsa.pub და ~/.ssh/id_rsa-ში.

გადადით .ssh დირექტორიაში აკრეფით:

ყურადღება მიაქციეთ ფაილის ნებართვებს:

ls -l
-rw-r--r-- 1 დემო დემო 807 სექტემბერი 9 22:15 authorized_keys
-rw------- 1 დემო დემო ვერსია 1679 სექტემბერი 9 23:13 id_rsa
-rw-r--r-- 1 დემო დემო 396 სექტემბერი 9 23:13 id_rsa.pub

როგორც ხედავთ, მხოლოდ მფლობელს აქვს უფლება წაიკითხოს და შეცვალოს id_rsa ფაილი. ასეთი პრივილეგიები საჭიროა გასაღების საიდუმლოდ შესანახად.

ამავდროულად, id_rsa.pub ფაილის გაზიარება შესაძლებელია, ამიტომ მას აქვს შესაბამისი პრივილეგიები.

საჯარო გასაღების სერვერზე გადატანა

შემდეგი ბრძანება დააკოპირებს საჯარო გასაღებს დისტანციურ სერვერზე:

ssh-copy-id remote_host

ეს გახსნის SSH სესიას, რომელიც მოითხოვს პაროლის შეყვანას შესასვლელად.

პაროლის შეყვანის შემდეგ, საჯარო გასაღები დაკოპირდება სერვერზე, რაც საშუალებას მოგცემთ შეხვიდეთ პაროლის გარეშე შემდეგ ჯერზე.

SSH კლიენტის პარამეტრები

SSH-ის საშუალებით დაკავშირებისას შეგიძლიათ გამოიყენოთ რამდენიმე დროშა.

ზოგიერთი მათგანი საჭიროა დისტანციური ჰოსტის ssh ფაილში შესაბამისი პარამეტრების დასაყენებლად.

მაგალითად, თუ ლოკალჰოსტის ssh კონფიგურაციებში პორტის ნომერი შეიცვალა, თქვენ უნდა დააყენოთ შესაბამისი პორტი კლიენტის მხარეს აკრეფით:

ssh -p port_number remote_host

თუ თქვენ გჭირდებათ ბრძანების გაშვება დისტანციურ სისტემაზე, შეგიძლიათ მიუთითოთ იგი შემდეგნაირად:

ssh remote_host საჭირო_ბრძანება

ეს ხაზი დაამყარებს კავშირს დისტანციურ მანქანასთან და შეასრულებს მითითებულ ბრძანებას.

როგორც უკვე აღვნიშნეთ, თუ X11 გადამისამართების ფუნქცია ჩართულია ორივე კომპიუტერზე, მისი გამოყენება შესაძლებელია აკრეფით:

ssh -X remote_host

თუ ლოკალურ სისტემას აქვს ყველა შესაბამისი ინსტრუმენტი, დისტანციურ სისტემაზე გამოყენებული GUI პროგრამები გაიხსნება ადგილობრივ კომპიუტერზე.

შედეგები

SSH-თან მუშაობის სწავლა ძალიან მნიშვნელოვანია, თუნდაც იმიტომ, რომ აუცილებელია ყველაზე ძირითადი ამოცანების შესრულება.

SSH-ის მუდმივი გამოყენებით, თქვენ შეგიძლიათ არა მხოლოდ დაიცვათ თქვენი სერვერი, არამედ გახდეთ მოწინავე მომხმარებელი, რაც მნიშვნელოვნად გაამარტივებს თქვენს ცხოვრებას. SSH პროტოკოლი რჩება პოპულარული, რადგან ის არის უსაფრთხო, საიმედო და სასარგებლო სხვადასხვა სიტუაციებში.

ტეგები: ,

SSH (Secure Shell) არის ქსელის პროტოკოლი, რომელიც შექმნილია დისტანციური სერვერის მართვისთვის და მონაცემთა გადაცემისთვის TCP დაშიფრული კავშირებით. ჰოსტინგის სერვისების უმეტესობა, თუნდაც ვირტუალური, დღეს უზრუნველყოფს წვდომას FTP და SSH-ის საშუალებით. ჩემი აზრით, ეს შესანიშნავია, SSH ბევრად უფრო მოსახერხებელი და უსაფრთხოა გამოსაყენებლად.

SSH-ის დაყენება

დაყენება მოხდება გამოყოფილი სერვერისთვის, VDS, VPS Debian-ზე, Ubuntu-ზე. კონფიგურაციის ფაილი მდებარეობს აქ: /etc/ssh/sshd_config.
თუ თქვენ გაქვთ რეგულარული ჰოსტინგი, ყველაფერი უნდა იყოს კონფიგურირებული ისე, როგორც უნდა, გადადით განყოფილებაში.

ნაგულისხმევად, SSHD დემონს (რომელსაც ჩვენ ვაკეთებთ ცვლილებებს) არ საჭიროებს რაიმე პარამეტრს და კარგად მუშაობს. ჩვენ მხოლოდ რამდენიმე მცირე ცვლილებას გავაკეთებთ, რათა შევზღუდოთ არასასურველი პირების წვდომა სერვერზე.

კონფიგურაციის ფაილში არასწორი ცვლილებების შეტანის შედეგად შეიძლება დაკარგოთ სერვერზე წვდომა ssh-ის საშუალებით, ამიტომ დარწმუნდით, რომ გაქვთ მასზე წვდომის ალტერნატიული ვარიანტები, მაგალითად, ISPManager მართვის პანელის გამოყენებით.

როგორ შევზღუდოთ SSH წვდომა

ყველა ცვლილება შეტანილია /etc/ssh/sshd_config
იმისათვის, რომ ცვლილებები ძალაში შევიდეს, თქვენ უნდა

პორტის შეცვლა

პორტი 9724

ახლა, ავტორიზაციისას, თქვენ უნდა მიუთითოთ 9724 სტანდარტული 22 პორტის ნაცვლად.
მეთოდი ძალიან მარტივი და ეფექტურია უბრალო ჰაკერული ბოტების წინააღმდეგ, რომლებიც აკაკუნებენ სტანდარტულ პორტებს. აქ მთავარია, არ შეიქმნას კონფლიქტი სხვა სერვისებთან და აირჩიოს ნომერი, რომელიც აშკარად გამოუყენებელია.

გამორთეთ კომუნიკაცია ძველი პროტოკოლის გამოყენებით

აქ ჩვენ განვსაზღვრავთ, რომ კომუნიკაცია შესაძლებელია მხოლოდ v2 პროტოკოლის გამოყენებით

თუ არ ხართ შესული ფესვი, კონსოლის ყველა ბრძანებამდე თქვენ უნდა დაამატოთ sudo - ეს ნიშნავს ჩაანაცვლე მომხმარებელი და გააკეთე- შეცვალეთ მომხმარებელი და გააკეთეთ (მისი ქვეშ). მაგალითად, ის საშუალებას გაძლევთ შეასრულოთ ბრძანებები სუპერმომხმარებლის სახით ფესვი.

შეამცირეთ ავტორიზაციის მცდელობების რაოდენობა

MaxAuthTries 2

პაროლის მცდელობების რაოდენობა. ნაგულისხმევი არის 6. თუ ძიება ვერ მოხერხდა, კომუნიკაციის სესია წყდება.

შეამცირეთ ავტორიზაციის მოლოდინის დრო

შესვლაGraceTime 30 წ

ნაგულისხმევად, ავტორიზაციის სესია შეიძლება გაგრძელდეს 120 წამი. ამ დროის შემდეგ მთავრდება. ავტორიზაციისთვის 2 წუთი ზედმეტია; მთელი ამ ხნის განმავლობაში სერვერი ინარჩუნებს კავშირს ღიად, რაც ძალიან ირაციონალურია. ნახევარი წუთი საკმარისია.

დახურეთ IP წვდომა

IP შეზღუდვების დაყენებამდე დარწმუნდით, რომ პარამეტრებში შეცდომის და თქვენი საკუთარი IP-ის შემდგომი აკრძალვის შემთხვევაში, თქვენ მაინც გექნებათ ალტერნატიული გზასერვერზე წვდომის აღდგენა

თუ მხოლოდ თქვენ გჭირდებათ წვდომა, უმარტივესი და ყველაზე საიმედო გზაა წვდომის დაბლოკვა ყველგან, გარდა თქვენი IP-ისა, ან თუ ის დინამიურია, მაშინ IP დიაპაზონი.

  1. გახსენით /etc/hosts.allow და დაამატეთ SSHD იქ: 192.168.1.1

    სადაც 192.168.1.1 არის თქვენი IP. თუ თქვენ გაქვთ დინამიური IP, განსაზღვრეთ IP ქვექსელის ნიღბით და ჩაწერეთ თქვენი ქვექსელი IP-ის ნაცვლად, მაგალითად:

    SSHD: 192.168.0.0/16

  2. გახსენით /etc/hosts.deny და დაამატეთ იქ: SSHD: ALL

IP-ით წვდომის შეზღუდვის კიდევ ერთი გზა

შეგიძლიათ გამოიყენოთ შემდეგი დირექტივა:

AllowUsers = *@1.2.3.4

აქ ჩვენ მხოლოდ IP 1.2.3.4-ზე წვდომას ვუშვებთ

SSH ავტორიზაცია გასაღებებით

გაცილებით უსაფრთხო, მოსახერხებელი და სწორი იქნება ssh ავტორიზაციის დაყენება პაროლის გარეშე. ამ მიზნით გამოყენებული იქნება გასაღების ავტორიზაცია.

ასე რომ, აქ არის ინსტრუქციები.

SSH - (Secure Shell) არის პროტოკოლი Linux ოპერაციული სისტემაზე მომუშავე კომპიუტერის დისტანციური მართვისთვის. Ssh ძირითადად გამოიყენება სერვერების დისტანციურად მართვისთვის ტერმინალის საშუალებით. თუ თქვენ ხართ რამდენიმე სერვერის ადმინისტრატორი ან თუნდაც მოწინავე ვებმასტერი, მაშინ ალბათ ხშირად აწყდებით კონკრეტულ კომპიუტერთან ssh-ის საშუალებით მუშაობის აუცილებლობას. Linux-ში ამისათვის გამოიყენება ssh სერვერი მანქანაზე, რომელსაც კლიენტი უნდა დაუკავშირდეს და მასზე, საიდანაც ისინი აკავშირებენ.

ამ სახელმძღვანელოში ჩვენ განვიხილავთ ssh-ის გამოყენებას და ასევე მის შესაძლებლობებს, რომელთა შესახებ არც კი იცოდით. სავარაუდოდ, თქვენ უკვე იცით, როგორ დაუკავშირდეთ სერვერს ssh-ის საშუალებით, მაგრამ ამ პროგრამას აქვს მრავალი სხვა შესაძლებლობა, როგორიცაა ssh ფაილების გადაცემა, პაროლის გარეშე დაკავშირება ან დისტანციურ სერვერზე სკრიპტის შესრულება. ამ ყველაფერს მოგვიანებით განვიხილავთ სტატიაში.

მაგრამ დავიწყოთ ძალიან საფუძვლებით.

ბრძანების სინტაქსი ასეთია:

$ssh [პარამეტრები] მომხმარებლის სახელი@სერვერი [ბრძანება]

მნიშვნელოვანია აღინიშნოს, რომ ssh-ს შეუძლია იმუშაოს პროტოკოლის ორი ვერსიის გამოყენებით. ვერსიები 1 და 2. ნათელია, რომ ვერსია 2 უკეთესია და მხარს უჭერს დაშიფვრის და ავტორიზაციის უფრო მეტ ტიპს. ამ სტატიაში ჩვენ აღარ ვისაუბრებთ პროტოკოლის განსხვავებებზე და ვივარაუდებ, რომ თქვენ იყენებთ 2 ვერსიას.

SSH ბრძანების პარამეტრები

ახლა მოდით შევხედოთ ssh ბრძანების ყველაზე ძირითად ვარიანტებს:

  • - ჩადეთ ssh ფონურ რეჟიმში
  • - მიეცით დისტანციურ მანქანებს ადგილობრივ პორტებზე წვდომის უფლება
  • - მომხმარებლის სახელი სისტემაში
  • - სტანდარტული გამომავალი გადამისამართება /dev/null-ზე
  • გვ- ssh პორტი დისტანციურ მანქანაზე
  • - არ აჩვენო შეცდომის შეტყობინებები
  • - გამართვის რეჟიმი
  • x- გამორთეთ X11 გადამისამართება
  • X- ჩართეთ X11 გადამისამართება
  • C- შეკუმშვის ჩართვა

ეს არ არის კომუნალური პროგრამის ყველა ვარიანტი; დანარჩენი სცილდება ამ სტატიის ფარგლებს. ssh ოპერაციების მრავალი პარამეტრი შეიძლება შეიცვალოს კონფიგურაციის ფაილის ~/.ssh/config-ის მეშვეობით, მაგრამ ჩვენ არც აქ განვიხილავთ ამას დეტალურად.

SSH სერვერის დაყენება

SSH სერვერის პარამეტრები განლაგებულია /etc/ssh/sshd_config. ჩვენ არც ბევრ მათგანს შევეხებით. განვიხილოთ მხოლოდ ყველაზე საინტერესო. ჯერ გახსენით /etc/ssh/sshd.conf ფაილი

ssh პორტი

ნაგულისხმევად, ssh მუშაობს 22-ე პორტზე. მაგრამ ეს ქცევა სახიფათოა, რადგან თავდამსხმელმა იცის ეს პორტი და შეუძლია შეასრულოს Bruteforce შეტევა პაროლის უხეში ძალით. პორტი მითითებულია ხაზით:

შეცვალეთ პორტის მნიშვნელობა სასურველზე.

SSH პროტოკოლი

ნაგულისხმევად, ssh სერვერს შეუძლია იმუშაოს პროტოკოლის ორ ვერსიაზე თავსებადობისთვის. პროტოკოლის მხოლოდ მეორე ვერსიის გამოსაყენებლად, გააუქმეთ ხაზი:

და მიიტანეთ იგი ამ ფორმაში:

მარშრუტზე წვდომა

ნაგულისხმევად, Root წვდომა ssh-ის საშუალებით დაშვებულია, მაგრამ ეს ქცევა ძალიან სახიფათოა, ამიტომ გააუქმეთ ხაზი:

PermitRootLogin no

მხოლოდ კონკრეტულ მომხმარებელს შეუძლია SSH წვდომა

ჩვენ შეგვიძლია დავუშვათ ssh წვდომა მხოლოდ კონკრეტული მომხმარებლის ან ჯგუფისთვის. ამისათვის დაამატეთ ხაზები:

AllowUsers User1, User2, User3
AllowGroups Group1, Group2, Group3

აქ User1 და Group1 არის მომხმარებელი და ჯგუფი, რომლებზეც წვდომა უნდა იყოს დაშვებული.

გაშვებული X11 აპლიკაციები

ყველამ არ იცის, მაგრამ შესაძლებელია ssh-ის გამოყენება სრულფასოვანი X11 აპლიკაციების გასაშვებად. ამაზე ქვემოთ ვისაუბრებთ, მაგრამ იმისათვის, რომ ყველაფერი იმუშაოს, თქვენ უნდა ჩართოთ ეს ფუნქცია სერვერის მხარეს, დაამატეთ შემდეგი ხაზი:

X11 გადამისამართება დიახ

ჩვენ განვიხილეთ ძირითადი პარამეტრები, სანამ გადავიდეთ, არ დაგავიწყდეთ გადატვირთოთ ssh სერვერი ცვლილებების შესანახად:

სერვისის sshd გადატვირთვა

SSH გამოყენებით

ამ სტატიის მთავარი მიზანია აჩვენოს ssh-ის გამოყენების საინტერესო და სასარგებლო გზები, რომლებიც შესაძლოა არ იცოდით. მოდით გადავიდეთ საუკეთესო ნაწილზე - ssh შესაძლებლობები.

სერვერთან დაკავშირება

უბრალოდ სერვერთან SSH-ის საშუალებით დასაკავშირებლად გამოიყენეთ შემდეგი ბრძანება:

გაუშვით ბრძანება

ჩვენ მიჩვეული ვართ დისტანციურ სერვერთან დაკავშირებას და მხოლოდ ამის შემდეგ შევასრულებთ საჭირო ბრძანებებს, მაგრამ სინამდვილეში, ssh პროგრამა საშუალებას გაძლევთ დაუყოვნებლივ შეასრულოთ სასურველი ბრძანება დისტანციური აპარატის ტერმინალის გახსნის გარეშე. Მაგალითად:

ssh user@host ls

შეასრულეთ ls ბრძანება დისტანციურ სერვერზე და დააბრუნეთ მისი გამომავალი მიმდინარე ტერმინალში.

შეასრულეთ ადგილობრივი სკრიპტი

მოდით გავუშვათ bash თარჯიმანი დისტანციურ სერვერზე და გადავცეთ მას ჩვენი ადგილობრივი სკრიპტი Bash შეყვანის გადამისამართების გამოყენებით:

ssh user@host "bash -s"< script.sh

სარეზერვო ასლი დისტანციურ სერვერზე და აღდგენა

ჩვენ შეგვიძლია შევინახოთ დისკის სარეზერვო ასლი პირდაპირ დისტანციურ სერვერზე ssh-ის გამოყენებით. მოდით გადავიტანოთ dd-ის გამომავალი გადამისამართების ოპერატორის გამოყენებით |, შემდეგ შევინახოთ ის ამ მხარეს ფაილში:

sudo dd if=/dev/sda | ssh user@host "dd of=sda.img"

ახლა, თქვენ მიერ შექმნილი ასლიდან დისკის მდგომარეობის აღსადგენად, გაუშვით:

ssh user@host "dd if=sda.img" | dd of=/dev/sda

აქ და ზემოთ /dev/sda არის თქვენი მყარი დისკის ფაილის სახელი.

ავტორიზაცია პაროლის გარეშე

სერვერზე შესასვლელად ssh პაროლის გამოყენება არა მხოლოდ მოუხერხებელია, არამედ სახიფათოა, რადგან ამ პაროლის გამოცნობა ნებისმიერ დროს შეიძლება. ყველაზე უსაფრთხო და ხშირად გამოყენებული ავთენტიფიკაციის მეთოდი არის RSA გასაღების წყვილის გამოყენება. პირადი გასაღები ინახება კომპიუტერში, ხოლო საჯარო გასაღები გამოიყენება სერვერზე მომხმარებლის იდენტიფიცირებისთვის.

ამ ქცევის კონფიგურაცია ძალიან მარტივია. ჯერ შექმენით გასაღები ბრძანებით:

ssh-keygen -t rsa

გასაღების შექმნისას მოგიწევთ უპასუხოთ რამდენიმე კითხვას; დატოვეთ მდებარეობა ნაგულისხმევად; თუ გსურთ პაროლის გარეშე დაკავშირება, დატოვეთ Passphare ველიც ცარიელი.

შემდეგ ჩვენ ვუგზავნით გასაღების სერვერს:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@host

მიიღეთ პაროლი ლოკალური ფაილიდან

შეგახსენებთ, რომ პაროლების შენახვა უბრალო ტექსტურ ფაილებში არ არის უსაფრთხო, მაგრამ თუ გსურთ, მაშინ დიახ, შესაძლებელია. ამისათვის გამოიყენეთ Bash-ის შეყვანის გადამისამართების ოპერატორი:

ssh user@host< local_file.txt

SSH მისალმების შეცვლა

ssh-ით შესვლისას შეიძლება გამოჩნდეს მისალმება, მისი შეცვლა ძალიან მარტივია. ამაზე პასუხისმგებელია ფაილი /etc/issue. უბრალოდ გახსენით ეს ფაილი და შეიყვანეთ სასურველი ტექსტი:

ვუყურებთ წარუმატებელი SSH შესვლის მცდელობებს

გსურთ ნახოთ, იყო თუ არა წარუმატებელი მცდელობები თქვენს სერვერზე წვდომის ssh-ის საშუალებით და რომელი IP მისამართებიდან? უბრალოდ, ყველა მოთხოვნა შეტანილია ფაილში /var/log/secure; მოდით გავფილტროთ მხოლოდ საჭირო მონაცემები ბრძანებით:

კატა /var/log/secure | grep "პაროლი ვერ შესრულდა"

ფაილების გადატანა SSH-ის საშუალებით

ბრძანებების შესრულების გარდა, შეგიძლიათ ფაილების კოპირება ssh-ის საშუალებით. ამისთვის გამოიყენება scp უტილიტა. უბრალოდ მიუთითეთ ფაილი, რომლის გადატანა გსურთ, დისტანციური სერვერი და საქაღალდე სერვერზე, აქ:

$scp /მისამართი/ლოკალური/ფაილი user@host:მისამართი/საქაღალდეები

Მაგალითად:

scp ~/test.txt user@host:documents

გარდა scp უტილიტასა, ssh ფაილის გადაცემა უფრო მეტი შეიძლება გაკეთდეს ეშმაკურად. მოდით წავიკითხოთ ფაილი და გამოვიყენოთ cat მის გადასაცემად და შემდეგ შევინახოთ ნაკადი ფაილში:

კატა ლოკალური ფაილი | ssh user@host "cat > დისტანციური ფაილი"

ssh user@host "cat > დისტანციური ფაილი"< localfile

tar czf - /სახლი/მომხმარებელი/ფაილი | ssh user@host tar -xvzf -C /სახლი/დისტანციური მომხმარებელი/

ssh ფაილების ამ გზით კოპირება საშუალებას გაძლევთ ერთდროულად გაგზავნოთ მთელი საქაღალდეები.

გრაფიკული აპლიკაციების გაშვება ssh-ზე

თუ თქვენ გჭირდებათ ამა თუ იმ გრაფიკული აპლიკაციის გაშვება დისტანციურ მანქანაზე, ამისათვის არ არის აუცილებელი VNC-ის გამოყენება, შეგიძლიათ გაუმკლავდეთ ssh-ის შესაძლებლობებს. პროგრამა შესრულდება სერვერის მხარეს და თქვენ მხოლოდ ფანჯარა გამოჩნდება, რათა შეასრულოთ ყველაფერი, რაც გჭირდებათ. უფრო მეტიც, ყველა მონაცემი დაშიფრულია. იმისათვის, რომ ამ ფუნქციამ იმუშაოს, თქვენ უნდა ჩართოთ ის სერვერის მხარეს.

შემდეგ ჩვენ უბრალოდ ვასრულებთ ბრძანებას დისტანციურ სერვერზე გრაფიკული აპლიკაციის გასაშვებად ასე:

ssh -XC user@remotehost "clipse"

როგორც უკვე ნახეთ, X ვარიანტი საშუალებას იძლევა X11 გადამისამართება კლიენტის მხარეს, ხოლო ვარიანტი C იძლევა მონაცემთა შეკუმშვას.

ssh სესიის დასრულება

თუ თქვენ იყენებდით ssh არასტაბილურ ინტერნეტს, როცა კავშირი დროდადრო წყდება, მაშინ ალბათ დაიღალეთ ტერმინალის დახურვით, რადგან წინააღმდეგ შემთხვევაში, ერთი შეხედვით, სესიის შეწყვეტის საშუალება არ არის. როდესაც დისტანციურ სერვერთან კავშირი გატეხილია, თქვენ ვერ შეძლებთ რაიმე ბრძანების შეყვანას და Ctrl+C, Ctrl+Z, Ctrl+D კლავიშების კომბინაციები არ მუშაობს. და ისინი არ იმუშავებენ, რადგან კლიენტი ცდილობს ამ ბრძანებების სერვერზე გაგზავნას. მაგრამ არსებობს გამოსავალი - Escape sequences. მათი მხარდაჭერის გასააქტიურებლად, დაამატეთ ხაზი:

/etc/ssh/ssh_config ფაილზე

SSH-ით დაკავშირება შესაძლებელია ყველა სატარიფო გეგმაზე, გარდა "Host-Lite" ტარიფისა. თუ თქვენ შეუკვეთეთ Host-Lite სატარიფო გეგმა, განაახლეთ ტარიფი და შეძლებთ დაკავშირებას SSH-ის საშუალებით:

საერთო ჰოსტინგის გეგმები არ იძლევა Midnight Commander-ის გამოყენების შესაძლებლობას. ეს შესაძლებლობა არსებობს.

თქვენი სახლის კომპიუტერზე დაინსტალირებული ოპერაციული სისტემის მიხედვით (არ აგვერიოს ჰოსტინგის OS-თან), შესაძლებელია შემდეგი: SSH კავშირის პარამეტრები.

თქვენს კომპიუტერს აქვს Windows OS

SSH-ით დასაკავშირებლად:

SSH-ის საშუალებით დაკავშირების შემდეგ, თქვენ იქნებით თქვენი ჰოსტინგის მთავარ დირექტორიაში. კონსოლის ბრძანებები Linux წარმოდგენილია ბმულზე. გთხოვთ გაითვალისწინოთ: ამ ბრძანებებიდან ბევრი ვერ შესრულდება საერთო ჰოსტინგზე (როგორიცაა პაკეტების ინსტალაცია და წაშლა, ფაილური სისტემების დამონტაჟება და ა.შ.), რადგან თქვენ არ გაქვთ root წვდომა.

თქვენ გაქვთ Linux-ის მსგავსი ოპერაციული სისტემა დაინსტალირებული თქვენს კომპიუტერში (Ubuntu, Kubuntu, Fedora, ...)

თქვენ შეგიძლიათ დაუკავშირდეთ SSH-ის საშუალებით ტერმინალის მეშვეობით, რომელიც უკვე ხელმისაწვდომია OS-ში.

დასრულდა, თქვენ დაკავშირებული ხართ SSH-ის საშუალებით.

შესაძლებელია თუ არა დამატებითი SSH მომხმარებლის შექმნა?

საერთო ჰოსტინგზე, SSH-ით დაკავშირება შესაძლებელია მხოლოდ მთავარი ჰოსტინგის შესვლის ქვეშ (ტიპი u1234567). თქვენ არ შეგიძლიათ შექმნათ დამატებითი SSH მომხმარებელი.

როგორ გამორთოთ SSH წვდომა?

იმისათვის, რომ გამორთოთ SSH წვდომა თქვენს ჰოსტინგზე, ჩაწერეთ. თქვენს განაცხადში გთხოვთ მიუთითოთ თქვენი ჰოსტინგის შესვლა (ტიპი u1234567), რისთვისაც უნდა გამორთოთ SSH წვდომა.

რა არის SSH და რატომ გჭირდებათ ის?

Secure Shell (SSH) არის ქსელის პროტოკოლი, რომელიც უზრუნველყოფს გარსის ფუნქციებს დისტანციურ მანქანას უსაფრთხო არხის მეშვეობით. SSH მოყვება უსაფრთხოების სხვადასხვა გაუმჯობესებებს, მათ შორის მომხმარებლის/მასპინძლის ავთენტიფიკაციას, მონაცემთა დაშიფვრას და მონაცემთა მთლიანობას, რაც შეუძლებელს ხდის პოპულარულ შეტევებს, როგორიცაა მოსმენა, DNS/IP გაყალბება, მონაცემთა გაყალბება და კავშირის გატაცება. ა.შ. Ftp, telnet ან rlogin მომხმარებლები, რომლებიც იყენებენ პროტოკოლი, რომელიც გადასცემს მონაცემებს წმინდა ტექსტში, რეკომენდებულია SSH-ზე გადასვლისთვის.

OpenSSH არის ღია კოდის დანერგვა საწყისი კოდი SSH პროტოკოლი, რომელიც საშუალებას გაძლევთ დაშიფროთ კავშირი ქსელში პროგრამების ნაკრების გამოყენებით. თუ გსურთ გქონდეთ SSH Linux-ზე, შეგიძლიათ დააინსტალიროთ OpenSSH, რომელიც შედგება OpenSSH სერვერისა და კლიენტის პაკეტებისგან.

OpenSSH სერვერის/კლიენტის პაკეტებს გააჩნია შემდეგი უტილიტები:

  • OpenSSH სერვერი: sshd (SSH დემონი)
  • OpenSSH კლიენტი: scp (უსაფრთხო დისტანციური ასლი), sftp (ფაილის უსაფრთხო გადაცემა), შესვლა/ssh (უსაფრთხო დისტანციური შესვლა), ssh-add (პირადი გასაღების დასრულება), ssh-agent (ავთენტიფიკაციის აგენტი), ssh-keygen (გასაღების ავტორიზაციის მართვა ).
OpenSSH სერვერისა და კლიენტის ინსტალაცია Linux-ზე

თუ გსურთ OpenSSH სერვერის/კლიენტის დაყენება და OpenSSH სერვერის ავტომატურად გაშვების კონფიგურაცია, მიჰყევით შემდეგ ინსტრუქციებს, რომლებიც განსხვავდება განაწილების მიხედვით.

Debian, Ubuntu ან Linux Mint

$ sudo apt-get install openssh-server openssh-client

Debian-ზე დაფუძნებულ სისტემებზე, ინსტალაციის შემდეგ, OpenSSH ავტომატურად დაიწყება ჩატვირთვისას. თუ რაიმე მიზეზით OpenSSH სერვერი ავტომატურად არ იწყება სისტემის გაშვებისას, შეგიძლიათ გაუშვათ შემდეგი ბრძანება, რათა მკაფიოდ დაამატოთ ssh ჩატვირთვისას სისტემის გაშვებისას.

$ sudo update-rc.d ssh ნაგულისხმევი

Fedora ან CentOS/RHEL 7

$ sudo yum -y დააინსტალირე openssh-server openssh-კლიენტები $ sudo systemctl დაწყება sshd სერვისი $ sudo systemctl ჩართვა sshd.service

CentOS/RHEL 6

$ sudo yum -y დააინსტალირე openssh-სერვერი openssh-კლიენტები $ sudo სერვისი sshd დაწყება $ sudo chkconfig sshd ჩართულია

Arch Linux

$ sudo pacman -Sy openssh $ sudo systemctl დაწყება sshd სერვისი $ sudo systemctl ჩართვა sshd.service

OpenSSH სერვერის დაყენება

თუ გსურთ OpenSSH სერვერის კონფიგურაცია, შეგიძლიათ შეცვალოთ სისტემის მასშტაბის კონფიგურაციის ფაილი, რომელიც მდებარეობს /etc/ssh/sshd_config.

არსებობს რამდენიმე OpenSSH ვარიანტი, რომელიც შეიძლება იყოს საინტერესო:
ნაგულისხმევად, sshd უსმენს 22 პორტს და უსმენს შემომავალ ssh კავშირებს. ssh-ის ნაგულისხმევი პორტის შეცვლით, შეგიძლიათ თავიდან აიცილოთ სხვადასხვა ავტომატური ჰაკერული შეტევები.
თუ თქვენს აპარატს აქვს ერთზე მეტი ფიზიკური ქსელის ინტერფეისი, შეგიძლიათ შეამოწმოთ რომელი ასოცირდება sshd-თან, ამისათვის შეგიძლიათ გამოიყენოთ ListenAddress ვარიანტი. ეს პარამეტრი ხელს უწყობს უსაფრთხოების გაუმჯობესებას შემომავალი SSH მხოლოდ კონკრეტული ინტერფეისით შეზღუდვით.

HostKey /etc/ssh/ssh_host_key

HostKey ოფცია განსაზღვრავს სად მდებარეობს პირადი ჰოსტის გასაღები.

PermitRootLogin no

PermitRootLogin ვარიანტი – შეუძლია თუ არა root სისტემაში შესვლა ssh-ის საშუალებით.

AllowUsers ალისა ბობ

AllowUsers ოფციის გამოყენებით შეგიძლიათ შერჩევით გამორთოთ ssh სერვისი Linux-ის გარკვეული მომხმარებლებისთვის. თქვენ შეგიძლიათ მიუთითოთ მრავალი მომხმარებელი, გამოყოფილი სივრცეებით.

მას შემდეგ, რაც /etc/ssh/sshd_config შეიცვალა, დარწმუნდით, რომ გადატვირთეთ ssh სერვისი.

OpenSSH-ის გადატვირთვა Debian, Ubuntu ან Linux Mint-ზე:

$ sudo /etc/init.d/ssh გადატვირთვა

OpenSSH-ის გადატვირთვა Fedora-ზე, CentOS/RHEL 7-ზე ან Arch Linux-ზე:

$ sudo systemctl გადატვირთეთ sshd.service

OpenSSH-ის გადატვირთვა CentOS/RHEL 6-ზე:

$ sudo სერვისის sshd გადატვირთვა

როგორ დავუკავშირდეთ SSH-ს

SSH-თან დაკავშირება Linux-დან

Linux-ის მომხმარებლებს არ სჭირდებათ დამატებითი პროგრამების დაყენება.

SSH-თან დაკავშირება Windows-იდან

სტუმრებისგან დამალული

.

Cygwin უფრო მეტია, ვიდრე უბრალოდ SSH კლიენტი. ეს არის ძლიერი კომბინატორი, რომელიც მხარს უჭერს Linux-ის ბევრ ბრძანებას. მაგალითად, Cygwin ძალიან აადვილებს SSL სერთიფიკატების შექმნას (ისევე, როგორც Linux). Windows-ში, ხელმოწერილი სერთიფიკატების შესაქმნელად, თქვენ უნდა იცეკვოთ ტამბურით. Cygwin ძალიან მოსახერხებელია cURL-ის გამოსაყენებლად (არ არის საჭირო არაფრის ცალ-ცალკე ინსტალაცია) და ა.შ. ვისაც არ აქვს ბრძანების ხაზი და Linux პროგრამები Windows-ზე, იპოვის გასასვლელს Cygwin-ში.

Cygwin-ის დაყენება მარტივია. Წავიდეთ

სტუმრებისგან დამალული

და ჩამოტვირთეთ

სტუმრებისგან დამალული

სტუმრებისგან დამალული

ჩამოიტვირთება პატარა ფაილი - ეს არის ინსტალერი. გრაფიკული ინსტალერი. მიუხედავად იმისა, რომ შეიცავს დიდი რიცხვიპარამეტრები, ისინი ყველა საკმაოდ მარტივია და ბევრი იცნობს სხვა გრაფიკული ინსტალერებისგან. თუ რამე გაუგებარია, უბრალოდ დააჭირეთ "შემდეგი". შესაძლოა, მხოლოდ შემდეგ ფანჯარამ შეიძლება გამოიწვიოს დაბნეულობა:

ინსტალაციისთვის ხელმისაწვდომი ყველა ელემენტი წარმოდგენილია აქ. ჩვენ არ გვჭირდება მათი გაგება ახლა. იმის გამო, რომ ყველაზე პოპულარული უკვე მონიშნულია ინსტალაციისთვის. და თუ რამე აკლია მომავალში, შეგიძლიათ მარტივად დააინსტალიროთ ის, რაც გჭირდებათ.

SSH კავშირი (ჩვეულებრივი Linux და Windows)

Linux-ის მომხმარებლები ხსნიან კონსოლს, ვინდოუსის მომხმარებლები აკრიფებენ Cygwin-ს.

SSH-ს სჭირდება შემდეგი ინფორმაცია დასაკავშირებლად:

  • IP ან ჰოსტის სახელი
  • პორტის ნომერი
  • მომხმარებლის სახელი
  • მომხმარებლის პაროლი
ამ ორი პარამეტრიდან SSH-ს შეუძლია გამოიცნოს: მომხმარებლის სახელი და პორტის ნომერი. თუ პორტი არ არის მითითებული, ნაგულისხმევი პორტი ითვლება. თუ მომხმარებელი არ არის მითითებული, მაშინ გამოიყენება იგივე სახელი, როგორც სისტემაში, საიდანაც ხდება კავშირი. მაგალითად, კავშირის ჰოსტის მისამართია 192.168.1.36. თუ ავკრიფე

Ssh 192.168.1.36

მე ვხედავ შემდეგს

Alex@MiAl-PC ~ $ ssh 192.168.1.36 ჰოსტის "192.168.1.36 (192.168.1.36)" ავთენტურობა შეუძლებელია. დარწმუნებული ხართ, რომ გსურთ გააგრძელოთ კავშირი ( კი არა)?

მას შემდეგ, რაც მე პირველად ვუკავშირდები მასპინძელს, ის უცნობი ჰოსტია. მეკითხებიან, მინდა თუ არა გაგრძელება. ვრეკავ დიახ:

გაფრთხილება: სამუდამოდ დაემატა "192.168.1.36" (ECDSA) ცნობილი ჰოსტების სიას. [ელფოსტა დაცულია]"ს პაროლი:

კარგი, ჰოსტი 192.168.1.36 დაემატა ნაცნობ ჰოსტების სიას. მე მთხოვენ მომხმარებლის ალექსის პაროლს. იმიტომ რომ SSH-ით სერვერზე ასეთი მომხმარებელი არ არის, მაგრამ ვაწკაპუნებ Ctrl+C(გატეხვა) და შეიყვანეთ ბრძანება დისტანციური სისტემის მომხმარებლის სახელთან ერთად. მომხმარებელი შეყვანილია დისტანციური აპარატის მისამართამდე და გამოყოფილია მისამართისგან @ სიმბოლოთი. @ სიმბოლო ინგლისურად იკითხება როგორც at და შეიძლება ითარგმნოს როგორც "in". იმათ. ჩაწერა [ელფოსტა დაცულია]შეიძლება ინტერპრეტირებული იყოს, როგორც "milal user on machine 192.168.1.36".

სშ [ელფოსტა დაცულია]

Alex@MiAl-PC მოწვევა შეიცვალა mial@mint-ის მოწვევით. ეს ნიშნავს, რომ ჩვენ უკვე ვართ დისტანციურ მანქანაზე, ანუ ჩვენ უკვე დავამყარეთ კავშირი. თუ თქვენ გჭირდებათ პორტის მითითება (თუ ის განსხვავდება სტანდარტულისგან), მაშინ პორტი უნდა იყოს მითითებული -p გადართვის შემდეგ. მაგალითად ასე:

სშ [ელფოსტა დაცულია]-გვ 10456

დაკავშირების შემდეგ, ჩვენ მივესალმებით მსგავსი რამ:

Linux mint 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 პროგრამები, რომლებიც შედის Debian GNU/Linux სისტემაში არის უფასო პროგრამული უზრუნველყოფა; თითოეული პროგრამის განაწილების ზუსტი პირობები აღწერილია ცალკეულ ფაილებში /usr/share/doc/*/საავტორო უფლებები. Debian GNU/Linux-ს გააჩნია აბსოლუტურად არანაირი გარანტია, რამდენადაც ნებადართულია მოქმედი კანონმდებლობით. ბოლო შესვლა: სამ ივნისი 16 15:32:25 2015 წლიდან 192.168.1.35

აქედან გამომდინარეობს, რომ დისტანციური მანქანა არის Linux Mint, ბირთვის 3.16, 64-ბიტიანი ვერსიით. ასევე მნიშვნელოვანი ინფორმაციაა ბოლო შესვლის დრო და IP მისამართი, საიდანაც წარმოიშვა კავშირი. თუ დრო და IP თქვენთვის უცნობია და თქვენ ერთადერთი მომხმარებელი ხართ, მაშინ თქვენი სისტემა კომპრომეტირებულია და თქვენ უნდა მიიღოთ შესაბამისი ზომები.

მოდით აკრიფოთ რამდენიმე ბრძანება, რათა დავრწმუნდეთ, სად ვართ და ვინ ვართ: pwd, [B]unname -aდა ა.შ.:

სესიის დასასრულებლად (გასვლა), აკრიფეთ

ან დააწკაპუნეთ Ctrl+D.

შედით SSH-ში პაროლის შეყვანის გარეშე

ჯერ ერთი, უბრალოდ უფრო მოსახერხებელია. მეორეც, ეს უფრო უსაფრთხოა.

პირველ რიგში, ჩვენ უნდა შევქმნათ rsa გასაღებები. თუ ლინუქსის მომხმარებელი ხართ, მაშინ კარგად ხართ. თუ ვინდოუსის მომხმარებელი ხართ, მაგრამ არ მოუსმინეთ ჩემს რჩევას და აირჩიეთ PuTTY, მაშინ პრობლემა გაქვთ და თავად იფიქრეთ როგორ მოაგვაროთ იგი. თუ თქვენ გაქვთ Cygwin, მაშინ ყველაფერი ასევე რიგზეა.

თუ მოახერხეთ დისტანციურ სისტემაში შესვლა, გამოდით. ამის შემდეგ აკრიფეთ

Ssh-keygen -t rsa

ჩვენ გვეკითხება ფაილის სახელი, ჩვენ არ გვჭირდება არაფრის შეყვანა, გამოყენებული იქნება ნაგულისხმევი სახელი. ის ასევე ითხოვს პაროლს. პაროლს არ ვწერ.

ახლა დისტანციურ მანქანაზე უნდა შევქმნათ .ssh დირექტორია. დისტანციურ მანქანაზე ბრძანების შესრულება ქვემოთ იქნება განხილული. ამ დროისთვის, უბრალოდ დააკოპირეთ ბრძანება, არ დაგავიწყდეთ შეცვალოთ IP მისამართი და მომხმარებლის სახელი საკუთარზე:

სშ [ელფოსტა დაცულია] mkdir.ssh

ახლა ჩვენ უნდა დავაკოპიროთ id_rsa.pub ფაილის შინაარსი დისტანციურ მანქანაში. ამის გაკეთება ძალიან მარტივია (არ დაგავიწყდეთ მონაცემების საკუთარზე შეცვლა):

კატა .ssh/id_rsa.pub | ssh [ელფოსტა დაცულია]"კატა >> .ssh/authorized_keys"

ახლა ჩვენ უბრალოდ შევდივართ სისტემაში და აღარ გვთხოვენ პაროლს. და ახლა ყოველთვის ასე იქნება.

დისტანციურ სერვერზე ბრძანებების შესრულება shell სესიის შექმნის გარეშე

გარდა დისტანციურ სისტემაზე shell სესიის გახსნისა, ssh ასევე საშუალებას გაძლევთ შეასრულოთ ინდივიდუალური ბრძანებები დისტანციურ სისტემაზე. მაგალითად, ხის ბრძანების გასაშვებად დისტანციურ ჰოსტზე, სახელად remote-sys და შედეგების ლოკალურ სისტემაზე საჩვენებლად, თქვენ გააკეთებთ ამას:

Ssh დისტანციური sys ხე

ჩემი ნამდვილი მაგალითი:

სშ [ელფოსტა დაცულია]ხე

ამ ტექნიკის გამოყენებით შეგიძლიათ გააკეთოთ საინტერესო რამ, მაგალითად, დისტანციურ სისტემაზე ls ბრძანების გაშვება და გამომავალი ფაილზე გადამისამართება ადგილობრივ სისტემაში:

Ssh remote-sys "ls *" > dirlist.txt

რეალური მაგალითი:

სშ [ელფოსტა დაცულია]"ls *" > dirlist.txt კატა dirlist.txt

გაითვალისწინეთ ზემოაღნიშნული ბრძანების ცალკეული ციტატები. ეს იმიტომ ხდება, რომ არ გვინდა გზის გაფართოება ლოკალურ მანქანაზე; რადგან ჩვენ გვჭირდება ეს შესრულება დისტანციურ სისტემაზე. ასევე, თუ გვსურს სტანდარტული გამომავალი ფაილზე გადამისამართება დისტანციურ მანქანაზე, შეგვიძლია დავაყენოთ გადამისამართების განცხადება და ფაილის სახელი ერთ ბრჭყალებში:

Ssh remote-sys "ls * > dirlist.txt"

სტანდარტული გამოსავლის გადატანა ადგილობრივი აპარატიდან დისტანციურ მანქანაზე ssh-ის საშუალებით

ბრძანებების შესრულების თანაბრად საინტერესო ვარიანტი მოცემულია ოდნავ უფრო მაღალი:

კატა .ssh/id_rsa.pub | ssh [ელფოსტა დაცულია]"კატა >> .ssh/authorized_keys"

  • cat ბრძანება კითხულობს და აჩვენებს .ssh/id_rsa.pub ფაილის შიგთავსს, რომელიც მდებარეობს ადგილობრივ მანქანაზე, სტრიქონი-სტრიქონი.
  • | (მილის) გადასცემს იმას, რაც გამოჩნდება სტანდარტულ გამომავალზე სხვა ბრძანებაზე.
  • ბრძანების ნაცვლად, რომელიც დაამუშავებს მასზე გადაცემულ სტრიქონებს, ხდება კავშირი დისტანციურ სისტემასთან (ssh [ელფოსტა დაცულია]).
  • დისტანციური სისტემა იღებს ხაზებს, რისთვისაც მოცემულია კატა >> .ssh/authorized_keys ბრძანება. იმათ. სტანდარტული გამომავალი შიგთავსი იწერება სტრიქონი-სტრიქონით დისტანციურ მანქანაზე მდებარე .ssh/authorized_keys ფაილში.
დისტანციურ კომპიუტერზე განთავსებული გრაფიკული პროგრამის გახსნა

მომდევნო ხრიკს ორი Linux კომპიუტერი სჭირდება. სამწუხაროდ, Cygwin-იც კი ვერ უმკლავდება ამ ხრიკს. უფრო მეტიც, ორივე Linux სისტემას უნდა ჰქონდეს გრაფიკული მომხმარებლის ინტერფეისი.

გვირაბი SSH-ით

სხვა საკითხებთან ერთად, რაც ხდება, როდესაც კავშირი დამყარებულია დისტანციურ ჰოსტთან SSH-ის საშუალებით, არის დაშიფრული გვირაბის შექმნა, რომელიც იქმნება ადგილობრივ და დისტანციურ სისტემებს შორის. როგორც წესი, ეს გვირაბი გამოიყენება იმის უზრუნველსაყოფად, რომ ადგილობრივ მანქანაზე აკრეფილი ბრძანებები უსაფრთხოდ გადაეცემა დისტანციურ მანქანას და შედეგი ასევე უსაფრთხოდ იგზავნება უკან.

ამ ძირითადი ფუნქციის გარდა, SSH პროტოკოლი საშუალებას აძლევს ტრაფიკის უმეტესობას გაიგზავნოს დაშიფრული გვირაბით, რაც ქმნის ერთგვარ VPN (ვირტუალური კერძო ქსელი) ადგილობრივ და დისტანციურ სისტემებს შორის.

ამ ფუნქციებიდან ყველაზე ხშირად გამოყენებულია X Window სისტემების ტრაფიკის გადაცემის შესაძლებლობა. სისტემაზე, რომელიც მუშაობს X სერვერზე (ეს არის მანქანები, რომლებსაც აქვთ მომხმარებლის გრაფიკული ინტერფეისი), შესაძლებელია X კლიენტის პროგრამის (გრაფიკული აპლიკაციის) გაშვება დისტანციურ სისტემაზე და მისი მუშაობის შედეგების ნახვა ლოკალურ სისტემაზე. ამის გაკეთება ადვილია. მაგალითად, მინდა დავუკავშირდე დისტანციურ ჰოსტს remote-sys და მასზე მინდა გავატარო xload პროგრამა. ამავდროულად, მე შევძლებ ამ პროგრამის გრაფიკული გამოსავლის ნახვას ლოკალურ კომპიუტერზე. ეს კეთდება ასე:

Ssh -X დისტანციური-sys xload

რეალური მაგალითი:

Ssh -X [ელფოსტა დაცულია]გედიტი

იმათ. SSH იწყება -X გადამრთველით. და შემდეგ პროგრამა უბრალოდ იწყება. შეხედეთ ეკრანის სურათს.

მე ვარ Kali Linux-ზე. მე წარმატებით შევდივარ დისტანციურ კომპიუტერში SSH-ის საშუალებით. ამის შემდეგ გავუშვი gedit პროგრამა. ეს პროგრამა შეიძლება არც კი იყოს Kali Linux-ზე, მაგრამ ის ნამდვილად არის Linux Mint-ზე, რომელსაც დავუკავშირდი. მე ვხედავ ამ პროგრამის შედეგს ეკრანზე, თითქოს პროგრამა ლოკალურად მუშაობდა. მაგრამ კიდევ ერთხელ მინდა გესმოდეთ ეს, არ არსებობს gedit პროგრამა გაშვებული ადგილობრივ კომპიუტერზე. თუ მსურს gedit-ის (ან ამ გზით გახსნილი ნებისმიერი სხვა პროგრამის) შედეგის შენახვა, გამოდის, რომ ის მუშაობს დისტანციური კომპიუტერის გარემოში, ხედავს მის ფაილურ სისტემას და ა.შ. დისტანციური კომპიუტერი გრაფიკული ინტერფეისის გამოყენებით.

როგორ გადაიტანოთ სურათი მთელი დესკტოპიდან იმავე სტატიაში მოგვიანებით, განყოფილებაში „როგორ დავაკონფიგურიროთ VNC SSH-ის საშუალებით“.

ზოგიერთ სისტემაში ეს ხრიკი მოითხოვს -Y ოფციის გამოყენებას -X ოფციის ნაცვლად.

კოპირება დისტანციურ კომპიუტერზე (scp და sftp)

სკპ

OpenSSH პაკეტი ასევე მოიცავს ორ პროგრამას, რომლებიც იყენებენ დაშიფრულ SSH გვირაბს ფაილების ქსელში კოპირებისთვის. პირველი პროგრამა - სკპ("უსაფრთხო ასლი") - გამოიყენება უფრო ხშირად, როგორც მსგავსი cp პროგრამა ფაილების კოპირებისთვის. ყველაზე შესამჩნევი განსხვავება ისაა, რომ ფაილის წყარო შეიძლება იყოს დისტანციური ჰოსტი, რომელსაც მოჰყვება ორწერტილი და ფაილის ადგილმდებარეობა. მაგალითად, თუ გვინდოდა დოკუმენტის კოპირება, სახელწოდებით document.txt, ჩვენი სახლის დირექტორიადან remote-sys-ში, ჩვენი ლოკალური სისტემის მიმდინარე სამუშაო დირექტორიაში, ჩვენ შეგვიძლია გავაკეთოთ ეს:

Scp remote-sys:document.txt . document.txt 100% 177 0.2KB/s 00:00

რეალური მაგალითი:

# წაშალე ფაილი ადგილობრივ მანქანაზე, თუ ის არსებობს rm dirlist.txt # შექმენი ფაილი დისტანციურ მანქანაზე ssh [ელფოსტა დაცულია]"ls * > dirlist.txt" # შეამოწმეთ მისი არსებობა ssh [ელფოსტა დაცულია]"ls -l" # დააკოპირეთ იგი ადგილობრივ მანქანაში scp [ელფოსტა დაცულია]:dirlist.txt. # შეამოწმეთ მისი შინაარსი cat dirlist.txt

  • [ელფოსტა დაცულია]- მომხმარებლის სახელი და დისტანციური ჰოსტი,
  • . (წერტილი) ნიშნავს, რომ ფაილი უნდა დაკოპირდეს დისტანციურ სერვერზე მიმდინარე სამუშაო დირექტორიაში, მაგრამ ფაილის სახელი იგივე დარჩება, ანუ nfile.txt
  • შენიშვნა:

    ფაილის კოპირება B-დან A-მდე B-ში შესვლისას:
    scp /path/to/file username@a:/path/to/destination
    ფაილის კოპირება B-დან A-მდე A-ში შესვლისას:
    scp username@b:/path/to/file /path/to/destination

    sftp

    მეორე პროგრამა ფაილების SSH-ზე კოპირებისთვის არის sftp. როგორც მისი სახელი გვთავაზობს, ეს არის უსაფრთხო ftp პროგრამის ჩანაცვლება. sftp მუშაობს ორიგინალური ftp პროგრამის მსგავსად. თუმცა, ჩვეულებრივი ტექსტის გაგზავნის ნაცვლად, ის იყენებს დაშიფრულ SSH გვირაბს. sftp-ის მნიშვნელოვანი უპირატესობა ftp-თან შედარებით არის ის, რომ მას არ სჭირდება გაშვებული FTP სერვერი დისტანციურ ჰოსტზე. მას მხოლოდ SSH სერვერი სჭირდება. ეს ნიშნავს, რომ ნებისმიერი დისტანციური მანქანა, რომელიც დაკავშირებულია SSH კლიენტის მეშვეობით, ასევე შეიძლება გამოყენებულ იქნას როგორც FTP-ის მსგავსი სერვერი. აქ არის სესიის მაგალითი:

    Alex@MiAl-PC ~ $ sftp [ელფოსტა დაცულია]დაკავშირებულია 192.168.1.36-თან. sftp> ls dirlist.txt newfile.txt nfile.txt temp ვიდეოები დოკუმენტები ჩამოტვირთვები სურათები მუსიკა საჯარო დესკტოპის შაბლონები sftp> lls dirlist.txt nfile.txt sftp> ls temp temp/TakeMeHome sftp> cd temptch / TakeMehoome mial/temp/TakeMeHome to TakeMeHome sftp> ნახვამდის

    SFTP პროტოკოლს აქვს მრავალი გრაფიკული მხარდაჭერა ფაილის მენეჯერები, რომელიც შეგიძლიათ იხილოთ Linux დისტრიბუციებში. Nautilus-ის (GNOME) და Konqueror-ის (KDE) გამოყენებით, ჩვენ შეგვიძლია შევიტანოთ URI-ები (ბმულები) დაწყებული sftp://-ით გადახტომის ზოლში და ვიმუშაოთ ფაილებთან, რომლებიც მდებარეობს დისტანციურ სისტემაზე, რომელიც მუშაობს SSH სერვერზე.



    მოგეწონათ სტატია? Გააზიარე