Kako konfigurirati prilagođene SSH veze za pojednostavljivanje daljinskog pristupa


SSH (SSH klijent) je program za daljinski pristup stroju, koji korisniku omogućuje izvršavanje naredbi na udaljenom hostu. To je jedna od najčešće preporučenih metoda za prijavu na udaljeni host jer je dizajnirana za pružanje sigurne šifrirane komunikacije između dva nepouzdana hosta preko nesigurne mreže.

SSH koristi i cijelu sustav kao i korisničku (prilagođenu) konfiguracijsku datoteku. U ovom ćemo uputstvu objasniti kako stvoriti prilagođenu ssh konfiguracijsku datoteku i koristiti određene opcije za povezivanje s udaljenim hostovima.

  1. Morali ste instalirati OpenSSH klijent na radnoj površini Linuxa.
  2. Razumijevanje uobičajenih opcija koje se koriste za udaljene veze putem ssh-a.

Ispod su lokacije konfiguracijskih datoteka ssh klijenta:

  1. /etc/ssh/ssh_config - ovo je zadana konfiguracijska datoteka za cijeli sustav. Sadrži postavke koje se primjenjuju na sve korisnike ssh klijentskog stroja.
  2. ~/.ssh/config ili $HOME/.ssh/config - je korisnička/prilagođena konfiguracijska datoteka. Ima konfiguracije koje se primjenjuju na određenog korisnika. Stoga nadjačava zadane postavke u konfiguracijskoj datoteci za cijeli sustav. Ovo je datoteka koju ćemo stvoriti i koristiti.

Prema zadanim postavkama korisnici se autentificiraju u ssh pomoću lozinki, međutim ssh prijavu bez lozinke možete postaviti pomoću ssh keygena u 5 jednostavnih koraka.

Napomena: U slučaju da direktorij ~/.ssh ne postoji na vašem sustavu radne površine, stvorite ga sa sljedećim dozvolama.

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

Gornja naredba chmod implicira da samo korisnik može imati dozvole za čitanje, pisanje i izvršavanje u direktoriju kako zahtijevaju ssh postavke.

Kako stvoriti korisničku SSH konfiguracijsku datoteku

Ova se datoteka obično ne stvara prema zadanim postavkama, pa je trebate stvoriti s dozvolama za čitanje/pisanje samo za korisnika.

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

Gornja datoteka sadrži odjeljke definirane specifikacijama hostova, a odjeljak se primjenjuje samo na hostove koji odgovaraju jednom od obrazaca postavljenih u specifikaciji.

Konvencionalni format ~/.ssh/config je kako slijedi, a svi prazni retci kao i retci koji počinju s ‘#’ smatraju se komentarima:

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

Iz gornjeg formata:

  1. Host host1 - je definicija zaglavlja za host1, ovdje započinje specifikacija hosta i završava sljedećom definicijom zaglavlja, Host host2 izrađuje odjeljak.
  2. host1, host2 su jednostavno pseudonimi hosta koji se koriste u naredbenom retku, a nisu stvarna imena hostova udaljenih hostova.
  3. Konfiguracijske opcije poput ssh_option1 = value1, ssh_option2 = value1 value2 primjenjuju se na podudarni host i trebaju biti uvučene radi dobro organiziranog oblikovanja.
  4. Za opciju kao što je ssh_option2 = value1 value2, prvo se uzima u obzir value1, a zatim value2.
  5. Definicija zaglavlja Host * (gdje je * uzorak - zamjenski znak koji odgovara nuli ili više znakova) podudarat će se s nula ili više hostova.

Ipak uzimajući u obzir gornji format, ssh čita konfiguracijsku datoteku na ovaj način. Ako izvršite ssh naredbu za daljinski pristup host1 ovako:

$ ssh host1

Gornja ssh naredba will radi sljedeće stvari:

  1. podudara se s pseudonimom hosta1 u konfiguracijskoj datoteci i primjenjuje opcije postavljene pod zaglavljem definicije, Host host1.
  2. zatim prelazi na sljedeći odjeljak hosta, Host host2 i utvrđuje da se naziv naveden u naredbenom retku ne podudara, pa se odavde ne koriste opcije.
  3. Nastavlja se do posljednjeg odjeljka, Host *, koji odgovara svim hostovima. Ovdje primjenjuje sve opcije u ovom odjeljku na vezu s domaćinom. Ali ne može nadjačati bilo koju vrijednost opcija koja je već korištena u prethodnim odjeljcima.
  4. Isto se odnosi i na host2.

Kako se koristi korisnička SSH konfiguracijska datoteka

Nakon što shvatite kako funkcionira datoteka konfiguracije ssh klijenta, možete je stvoriti na sljedeći način. Ne zaboravite koristiti opcije i vrijednosti (pseudonime domaćina, brojeve priključaka, korisnička imena i tako dalje) primjenjive na vaše poslužiteljsko okruženje.

Otvorite konfiguracijsku datoteku s vašim omiljenim uređivačem:

$ vi ~/.ssh/config

I definirajte potrebne odjeljke:

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

Detaljno objašnjenje gornjih opcija konfiguracije ssh.

  1. Ime hosta - definira pravo ime hosta za prijavu, možete koristiti i numeričke IP adrese, to je također dopušteno (i u naredbenom retku i u specifikacijama hosta).
  2. Korisnik - navodi korisnika da se prijavi kao.
  3. Port - postavlja broj porta za povezivanje na udaljenom hostu, zadani je 22. Upotrijebite broj porta konfiguriran u datoteci sshd za konfiguraciju udaljenog hosta.
  4. Protokol - ova opcija definira verzije protokola koje bi ssh trebao podržavati prema redoslijedu. Uobičajene vrijednosti su "1" i "2", više verzija mora biti odvojeno zarezom.
  5. IdentityFile - navodi datoteku iz koje se čita korisnički identitet DSA, Ed25519, RSA ili ECDSA provjere autentičnosti.
  6. ForwardX11 - definira hoće li se X11 veze automatski preusmjeriti preko sigurnog kanala i postaviti DISPLAY. Ima dvije moguće vrijednosti "da" ili "ne".
  7. Kompresija - koristi se za postavljanje kompresije tijekom udaljene veze s vrijednošću "da". Zadana vrijednost je "ne".
  8. ServerAliveInterval - postavlja interval čekanja u sekundama nakon kojeg će, ako nije primljen odgovor (ili podaci) od poslužitelja, ssh poslati poruku putem šifriranog kanala da zatraži odgovor od poslužitelja. Zadana vrijednost je 0, što znači da se poruke neće slati na poslužitelj ili 300 ako je definirana opcija BatchMode.
  9. ServerAliveCountMax - postavlja broj živih poruka poslužitelja koje se mogu poslati bez ssh-ovog primanja odgovora od poslužitelja.
  10. LogLevel - definira razinu detaljnosti koja se koristi prilikom bilježenja poruka ssh. Dopuštene vrijednosti uključuju: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 i DEBUG3. A zadana vrijednost je INFO.

Standardni način povezivanja s bilo kojim udaljenim Linux hostom (CentOS 7 - u mom slučaju), definiran u drugom odjeljku gornje konfiguracijske datoteke, obično bismo upisali naredbu ispod:

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

Međutim, upotrebom konfiguracijske datoteke ssh klijenta možemo jednostavno upisati sljedeću naredbu:

$ ssh centos7 

Više opcija i primjera korištenja možete pronaći na man stranici ssh client config:

$man ssh_config

To je za sada, u ovom smo vodiču objasnili kako koristiti korisničku (prilagođenu) konfiguracijsku datoteku ssh klijenta u Linuxu. Upotrijebite obrazac za povratne informacije u nastavku da biste nam odgovorili u vezi s ovim člankom.