Kaip sukonfigūruoti pasirinktines SSH jungtis, kad supaprastintumėte nuotolinę prieigą


SSH (SSH klientas) yra nuotolinio prisijungimo prie kompiuterio programa, leidžianti vartotojui vykdyti komandas nuotoliniame pagrindiniame kompiuteryje. Tai yra vienas iš labiausiai rekomenduojamų prisijungimo prie nuotolinio kompiuterio metodų, nes jis sukurtas saugiam užšifruotam ryšiui tarp dviejų nepatikimų pagrindinių kompiuterių užtikrinti nesaugiu tinklu.

SSH naudoja tiek visos sistemos, tiek vartotojo specifinį (pasirinktinį) konfigūracijos failą. Šioje pamokoje paaiškinsime, kaip sukurti pasirinktinį ssh konfigūracijos failą ir naudoti tam tikras parinktis prisijungiant prie nuotolinių kompiuterių.

  1. „Linux“ darbalaukyje turite būti įdiegę „OpenSSH“ klientą.
  2. Supraskite įprastas parinktis, naudojamas nuotoliniam ryšiui per ssh.

Žemiau pateikiamos ssh kliento konfigūracijos failų vietos:

  1. /etc/ssh/ssh_config - tai numatytasis visos sistemos konfigūracijos failas. Jame yra nustatymai, taikomi visiems „ssh“ kliento mašinos vartotojams.
  2. ~/.ssh/config arba $HOME/.ssh/config - konkretaus vartotojo/pasirinktinės konfigūracijos failas. Jis turi konfigūracijas, taikomas konkrečiam vartotojui. Todėl jis pakeičia numatytuosius nustatymus visos sistemos konfigūracijos faile. Tai failas, kurį sukursime ir naudosime.

Pagal numatytuosius nustatymus vartotojai autentifikuojami ssh naudojant slaptažodžius, tačiau galite nustatyti ssh prisijungimą be slaptažodžio naudodami ssh keygen atlikdami 5 paprastus veiksmus.

Pastaba: Jei jūsų darbalaukio sistemoje nėra katalogo ~/.ssh , sukurkite jį su šiais leidimais.

$ mkdir -p ~/.ssh
$ chmod 0700 ~/.ssh   

Pirmiau pateikta komanda chmod reiškia, kad tik vartotojas gali turėti kataloge skaitymo, rašymo ir vykdymo teises, kaip reikalaujama ssh nustatymuose.

Kaip sukurti konkretaus vartotojo SSH konfigūracijos failą

Šis failas paprastai nėra sukurtas pagal numatytuosius nustatymus, todėl jį turite sukurti turėdami skaitymo/rašymo teises tik vartotojui.

$ touch ~/.ssh/config
$ chmod 0700 ~/.ssh/config

Pirmiau pateiktame faile yra skyrių, apibrėžtų kompiuterių specifikacijomis, o skyrius taikomas tik pagrindiniams kompiuteriams, kurie atitinka vieną iš specifikacijoje nustatytų modelių.

Įprastas ~/.ssh/config formatas yra toks ir visos tuščios eilutės, taip pat eilutės, prasidedančios ‘#’ , laikomos komentarais:

Host    host1
	ssh_option1=value1
	ssh_option2=value1 value2
	ssh_option3=value1 

Host    host2
	ssh_option1=value1
	ssh_option2=value1 value2

Host  *
	ssh_option1=value1
	ssh_option2=value1 value2

Iš aukščiau pateikto formato:

  1. „Host host1“ - tai „host1“ antraštės apibrėžimas, čia prasideda pagrindinio kompiuterio specifikacija ir jis baigiasi kitu antraštės apibrėžimu, „Host Host2“ sukuriant skyrių.
  2. host1, host2 yra tiesiog pagrindinio kompiuterio slapyvardžiai, kuriuos reikia naudoti komandinėje eilutėje, jie nėra tikri nuotolinių kompiuterių pavadinimai.
  3. Konfigūracijos parinktys, pvz., ssh_option1 = value1, ssh_option2 = value1 value2, taikomos suderintam pagrindiniam kompiuteriui ir turėtų būti įtraukiamos į gerai organizuotą formatavimą.
  4. Pasirinkus tokią parinktį kaip ssh_option2 = value1 value2, pirmiausia atsižvelgiama į value1, tada į value2.
  5. Antraštės apibrėžimas „Host“ * (kur * yra šablonas - pakaitos simbolis, atitinkantis nulį ar daugiau simbolių) atitiks nulį ar daugiau pagrindinių kompiuterių.

Vis dar atsižvelgiant į aukščiau pateiktą formatą, ssh taip nuskaito konfigūracijos failą. Jei vykdote ssh komandą nuotoliniu būdu pasiekti „host1“ taip:

$ ssh host1

Pirmiau nurodyta komanda ssh atliks šiuos veiksmus:

  1. suderinti pagrindinio kompiuterio pseudonimą „host1“ konfigūracijos faile ir pritaikyti parinktis, nustatytas apibrėžimo antraštėje „Host host1“.
  2. tada pereinama į kitą pagrindinio kompiuterio skyrių „Host host2“ ir nustatoma, kad komandinėje eilutėje pateiktas vardas nesutampa, todėl iš čia nenaudojamos jokios parinktys.
  3. Pereinama prie paskutinio skyriaus „Host *“, kuris atitinka visus kompiuterius. Čia jis taiko visas šio skyriaus parinktis pagrindinio kompiuterio ryšiui. Bet tai negali nepaisyti jokių parinkčių verčių, kurios jau buvo naudojamos ankstesniame (-iuose) skyriuje (-uose).
  4. Tas pats pasakytina ir apie pagrindinį kompiuterį2.

Kaip naudoti konkretaus vartotojo SSH konfigūracijos failą

Supratę, kaip veikia ssh kliento konfigūracijos failas, galite jį sukurti taip. Nepamirškite naudoti parinkčių ir reikšmių (pagrindinio kompiuterio slapyvardžių, prievado numerių, vartotojo vardų ir pan.), Taikomų jūsų serverio aplinkai.

Atidarykite konfigūracijos failą naudodami mėgstamą redaktorių:

$ vi ~/.ssh/config

Ir apibrėžkite būtinus skyrius:

Host fedora25
        HostName 192.168.56.15
        Port 22
        ForwardX11 no

Host centos7
        HostName 192.168.56.10
        Port 22
        ForwardX11 no

Host ubuntu
        HostName 192.168.56.5
        Port 2222
        ForwardX11 yes

Host *
        User tecmint
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        ServerAliveInterval 60
        ServerAliveCountMax 20
        LogLevel INFO

Išsamus aukščiau nurodytų ssh konfigūravimo parinkčių paaiškinimas.

  1. HostName - apibrėžia tikrąjį pagrindinio kompiuterio vardą, prie kurio norite prisijungti, taip pat galite naudoti skaitmeninius IP adresus, tai taip pat leidžiama (tiek komandinėje eilutėje, tiek HostName specifikacijose).
  2. Vartotojas - nurodo vartotoją, kuris turi prisijungti kaip.
  3. Prievadas - nustato prievado numerį prisijungti prie nuotolinio kompiuterio, numatytasis parametras yra 22. Naudokite prievado numerį, sukonfigūruotą nuotolinio kompiuterio „sshd“ konfigūracijos faile.
  4. Protokolas - ši parinktis apibrėžia protokolo versijas, kurias „ssh“ turėtų palaikyti pirmenybės tvarka. Įprastos vertės yra „1“ ir „2“, kelias versijas reikia atskirti kableliais.
  5. IdentityFile - nurodo failą, iš kurio nuskaitoma vartotojo DSA, Ed25519, RSA arba ECDSA autentifikavimo tapatybė.
  6. „ForwardX11“ - apibrėžia, ar „X11“ jungtys bus automatiškai nukreiptos per saugų kanalą ir nustatytas „DISPLAY“. Jis turi dvi galimas vertes: „taip“ arba „ne“.
  7. Suspaudimas - jis naudojamas norint nustatyti glaudinimą nuotolinio ryšio metu su „taip“ reikšme. Numatytasis nustatymas yra „ne“.
  8. ServerAliveInterval - nustato skirtojo laiko pertrauką sekundėmis, po kurio iš serverio negausite atsakymo (ar duomenų), ssh išsiųs pranešimą per užšifruotą kanalą, kad paprašytų atsakymo iš serverio. Numatytoji vertė yra 0, tai reiškia, kad pranešimai į serverį nebus siunčiami, arba 300, jei buvo nustatyta parinktis „BatchMode“.
  9. ServerAliveCountMax - nustato serverio gyvų pranešimų, kurie gali būti siunčiami, nes SSH negauna jokio atsakymo iš serverio, skaičių.
  10. „LogLevel“ - apibrėžia daugialypiškumo lygį, kuris naudojamas registruojant pranešimus iš ssh. Leidžiamos vertės apima: Tylus, FATAL, KLAIDA, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 ir DEBUG3. Ir numatytasis yra INFO.

Standartinis būdas prisijungti prie bet kurio nuotolinio „Linux“ pagrindinio kompiuterio (mano atveju - „CentOS 7“), apibrėžtas aukščiau esančiame konfigūracijos failo antrame skyriuje, paprastai įveskite žemiau esančią komandą:

$ ssh -i ~/.ssh/id_rsa -p 22 [email 

Tačiau naudodami ssh kliento konfigūracijos failą galime tiesiog įvesti šią komandą:

$ ssh centos7 

Daugiau parinkčių ir naudojimo pavyzdžių galite rasti ssh kliento konfigūracijos vartotojo puslapyje:

$man ssh_config

Tai dabar, šiame vadove paaiškinome, kaip „Linux“ naudoti konkretaus vartotojo (pasirinktinio) ssh kliento konfigūracijos failą. Norėdami parašyti mums apie šį straipsnį, naudokite toliau pateiktą atsiliepimų formą.