Kako konfigurirati prilagođene SSH veze za pojednostavljenje udaljenog pristupa


SSH (SSH klijent) je program za daljinski pristup mašini, omogućava korisniku da izvrši komande na udaljenom hostu. To je jedan od najpreporučljivijih metoda za prijavu na udaljeni host, budući da je dizajniran da obezbijedi sigurnu šifrovanu komunikaciju između dva nepouzdana hosta preko nesigurne mreže.

SSH koristi i konfiguracijsku datoteku za cijeli sistem i konfiguracijsku datoteku (prilagođenu) specifičnu za korisnika. U ovom vodiču ćemo objasniti kako kreirati prilagođenu ssh konfiguracijsku datoteku i koristiti određene opcije za povezivanje s udaljenim hostovima.

Zahtjevi:

  1. Morate imati instaliran OpenSSH klijent na vašem Linux desktopu.
  2. Razumjeti uobičajene opcije koje se koriste za udaljene veze putem ssh-a.

SSH klijentske konfiguracijske datoteke

Ispod su lokacije konfiguracijskih datoteka ssh klijenta:

  1. /etc/ssh/ssh_config – ovo je zadana konfiguracijska datoteka za cijeli sistem. Sadrži postavke koje se primjenjuju na sve korisnike ssh klijentske mašine.
  2. ~/.ssh/config ili $HOME/.ssh/config – je korisnički specifičan/prilagođeni konfiguracijski fajl. Ima konfiguracije koje se primjenjuju na određenog korisnika. Stoga poništava zadane postavke u konfiguracijskoj datoteci za cijeli sistem. Ovo je fajl koji ćemo kreirati i koristiti.

Po defaultu, korisnici se autentifikuju na ssh pomoću lozinki, međutim, možete podesiti ssh prijavu bez lozinke koristeći ssh keygen u 5 jednostavnih koraka.

Napomena: U slučaju da direktorij ~/.ssh ne postoji na vašem desktop sistemu, kreirajte ga sa sljedećim dozvolama.


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

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

Kako kreirati korisnički specifičan SSH konfiguracionu datoteku

Ova datoteka se obično ne kreira prema zadanim postavkama, tako da je trebate kreirati 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 šablona postavljenih u specifikaciji.

Konvencionalni format ~/.ssh/config je sljedeći, a svi prazni redovi kao i redovi koji počinju sa ‘#’ 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 počinje specifikacija hosta i završava se sljedećom definicijom zaglavlja, Host host2 stvara odjeljak.
  2. host1, host2 su jednostavno pseudonimi hosta koji se koriste u komandnoj liniji, oni nisu stvarna imena hostova udaljenih hostova.
  3. Opcije konfiguracije kao što su ssh_option1=value1, ssh_option2=value1 value2 primjenjuju se na podudarni host i trebaju biti uvučene za dobro organizirano formatiranje.
  4. Za opciju kao što je ssh_option2=value1 value2, prvo se razmatra vrijednost value1, a zatim value2.
  5. Definicija zaglavlja Host * (gdje je * uzorak – zamjenski znak koji odgovara nula ili više znakova) će odgovarati nula ili više hostova.

I dalje uzimajući u obzir gornji format, ovako ssh čita konfiguracionu datoteku. Ako izvršite ssh naredbu za daljinski pristup host1 na sljedeći način:


ssh host1

Gornja ssh naredba radi sljedeće stvari:

  1. podudara se sa aliasom hosta host1 u konfiguracijskoj datoteci i primjenjuje opcije postavljene u zaglavlju definicije, Host host1.
  2. zatim prelazi na sljedeći odjeljak hosta, Host host2 i otkriva da se ime navedeno u komandnoj liniji ne podudara, tako da se ovdje ne koriste nikakve opcije.
  3. Nastavlja se do posljednjeg odjeljka, Host *, koji odgovara svim hostovima. Ovdje primjenjuje sve opcije iz ovog odjeljka na vezu s hostom. Ali ne može poništiti bilo koje vrijednosti opcija koje su već korištene u prethodnim odjeljcima.
  4. Isto vrijedi i za host2.

Kako koristiti korisnički specifičan SSH konfiguracijski fajl

Kada shvatite kako funkcioniše konfiguracioni fajl ssh klijenta, možete ga kreirati na sledeći način. Ne zaboravite da koristite opcije i vrijednosti (pseudonime hosta, brojeve portova, korisnička imena i tako dalje) primjenjive na okruženje vašeg servera.

Otvorite konfiguracioni fajl sa vašim omiljenim editorom:


vi ~/.ssh/config

I definirajte potrebne dijelove:


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 ssh konfiguracije.

  1. HostName – definira pravo ime hosta za prijavu, alternativno, možete koristiti numeričke IP adrese, također je dozvoljeno (i na komandnoj liniji i u specifikacijama HostName) .
  2. Korisnik – određuje korisnika da se prijavi kao.
  3. Port – postavlja broj porta za povezivanje na udaljenom hostu, zadana postavka je 22. Koristite broj porta konfiguriran u sshd konfiguracijskoj datoteci udaljenog hosta.
  4. Protokol – ova opcija definira verzije protokola koje ssh treba podržavati prema željenom redoslijedu. Uobičajene vrijednosti su ‘1’ i ‘2’, više verzija mora biti odvojeno zarezima.
  5. IdentityFile – specificira datoteku iz koje se čita identitet korisnika DSA, Ed25519, RSA ili ECDSA autentifikacije.
  6. ProslijediX11 – definira da li će X11 veze biti automatski preusmjerene preko sigurnog kanala i postavljenog DISPLAY. Ima dvije moguće vrijednosti “da ” ili ”ne”.
  7. Kompresija – koristi se za postavljanje kompresije tokom udaljene veze sa vrijednošću “da ”. Zadana postavka je “ne ”.
  8. ServerAliveInterval – postavlja interval vremenskog ograničenja u sekundama nakon kojeg, ako od servera nije primljen odgovor (ili podaci), ssh će poslati poruku preko šifrovanog kanala kako bi zatražio odgovor od servera. Zadana vrijednost je 0, što znači da neće biti poslane poruke na server, ili 300 ako je definirana opcija BatchMode.
  9. ServerAliveCountMax – postavlja broj živih poruka servera koje se mogu poslati bez da ssh dobije bilo kakav odgovor od servera.
  10. LogLevel – definira nivo detaljnosti koji se koristi prilikom evidentiranja poruka sa ssh-a. Dozvoljene vrijednosti uključuju: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 i DEBUG3. A zadana vrijednost je INFO.

Standardni način povezivanja na bilo koji udaljeni Linux host (CentOS 7 – u mom slučaju), definiran u drugom dijelu gornje konfiguracijske datoteke, obično bismo upisali naredbu ispod:


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

Međutim, uz korištenje 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 za konfiguraciju ssh klijenta:


$man ssh_config

To je to za sada, u ovom vodiču smo vam objasnili kako koristiti korisnički specifičan (prilagođeni) konfiguracijski fajl ssh klijenta u Linuxu. Koristite obrazac za povratne informacije u nastavku da nam pišete u vezi ovog članka.