Primarni način povezivanja na Linux server je putem SSH protokol. Ova vrsta veze je sigurna, jer su svi podaci koji se prenose putem nje šifrirani. Po redu to uspostaviti SSH vezu trebali biste ga konfigurirati na udaljenom serveru na koji želite da se povežete, a klijent na strani korisnika. Postoji tona softvera za SSH konekciju. Što se tiče Linuxa, OpenSSH paket je najpopularniji, a za Windows ljudi uglavnom koriste PuTTY.
Pogledajmo bliže konfiguraciju servera koristeći Ubuntu Server 18.04 kao primjer, a zatim pokušajte da se povežete sa serverom iz Linuxa i Windowsa.
Sve što radimo biće sa naloga običnog korisnika. U ovom slučaju kreirali smo korisnika “mihail"I"korijen” nalog je podrazumevano onemogućen.
Podešavanje na strani servera
Postavite paket koji pokreće ovu naredbu:
sudo apt install openssh-server
Nakon što je instalacija završena, uvjerite se da je usluga pokrenuta. Koristite ovu naredbu:
systemctl status sshd
Status “Aktivan (trči)” znači da je usluga omogućena i radi normalno.
Kako biste izbjegli blokiranje dolaznih veza od strane zaštitnog zida, obavezno ga onemogućite, jer u ovom članku nećemo konfigurirati mrežni zaštitni zid.
Koristite ovu naredbu:
sudo ufw disable
U ovoj fazi se već možete povezati na server. Sa zadanim postavkama server omogućava povezivanje sa standardnim portom 22 uz autentifikaciju baziranu na lozinki.
SSH konekcija iz Linuxa
OpenSSH klijent je po pravilu instaliran na Linux po defaultu i ne zahtijeva dodatnu ručnu konfiguraciju. Veza se može uspostaviti sa terminala uz pomoć ssh komande. Parametri u ovom slučaju bi bili korisničko ime i IP adresa udaljenog servera. Na našem test serveru koji koristimo kao primjer postoji samo jedan račun “mihail”, pa ćemo koristiti ovaj.
ssh [email protected]
Prilikom prvog povezivanja morat ćete potvrditi dodavanje javnog ključa servera u bazu podataka, pa odgovorite “daNakon toga možete unijeti lozinku. Ako je veza uspješno uspostavljena, vidjet ćete tekst dobrodošlice komandne linije servera. Sada će sve naredbe biti izvršene direktno na udaljenom serveru.
SSH iz Windowsa
Otvorite Putty i postavite parametre veze. Uvjerite se da je prekidač “Tip veze” se okreće ka SSH. Unesite IP adresu u "Ime hosta” polje, zadana vrijednost 22 u “luka"I kliknite"otvoreno".
Pri prvom povezivanju git će od vas tražiti da potvrdite da vjerujete ovom serveru, pa kliknite na “Da"
Nakon što unesete login i lozinku, vidjet ćete komandnu liniju udaljenog servera.
Autentifikacija ključem. Povećanje nivoa sigurnosti
Kada klijent pokušava uspostaviti sigurnu vezu sa serverom preko SSH-a, prije nego što dozvoli konekciju, server zahtijeva autentifikaciju (verifikaciju) klijenta. Kao što je već spomenuto, autentifikacija zasnovana na lozinki se obično koristi po defaultu. Ne pruža robusnu sigurnost, jer uvijek postoji način da se grubo nametne. Osim toga, autentifikacija lozinkom nije primjenjiva na SSH konekcije uz korištenje skripti.
Za ovu vrstu zadataka postoji posebna metoda provjere autentičnosti po ključu. Poenta je da klijent generiše privatne i javne ključeve, a zatim se javni ključ šalje serveru. Nakon toga vam nije potrebna lozinka za povezivanje sa serverom, jer se autentifikacija vrši na osnovu javnih i privatnih ključeva klijenta. Da bi se obezbedio dobar nivo bezbednosti, pristup privatnom ključu treba da bude ograničen. Zbog činjenice da je privatni ključ pohranjen na strani klijenta i da se ne prenosi preko mreže, vjeruje se da je ovaj metod sigurniji.
Autentifikacija ključem na Linuxu
Hajde da generišemo javne i privatne ključeve na klijentu uz pomoć uslužnog softvera ssh-keygen. Alat će predložiti promjenu putanje do privatnog ključa i unijeti lozinku za dodatnu sigurnost. Ostavite sve parametre kao podrazumevane pritiskom na Enter na svim zahtevima.
Kao rezultat toga, u početnom direktoriju u .ssh folderu ćete pronaći dvije generirane datoteke: id_rsa i id_rsa.pub koji u skladu sa tim sadrže privatne i javne ključeve.
Nakon toga, morat ćete poslati javni ključ na server. Da biste to učinili, kopirajte sadržaj "id_rsa.pub” fajl u “~/.ssh/authorized_keys” datoteku na serveru. Idemo na najlakši način uz pomoć “ssh-copy-id” alat. Unesite login i IP adresu servera, kao u slučaju običnog povezivanja. Nakon što unesete lozinku, javni ključ klijenta će se automatski kopirati na server. Pokrenite ovu naredbu:
ssh-copy-id [email protected]
Nakon što sve to uradite, server više neće zahtijevati unos lozinke.
Autentifikacija ključem na Windows-u
otvoreno PUTTYGEN i kliknite na "proizvestiDa biste generirali ključeve, samo trebate pomaknuti miš preko ekrana i alat će nasumično generirati ključeve.
Nakon što su ključevi generirani, kliknite na "Sačuvaj privatni ključ” i sačuvajte ga u datoteku sa privatnim ključem na vašem disku. Možete postaviti bilo koju putanju, ali malo kasnije ćete je morati navesti u Puttyju. Zatim kopirajte javni ključ sa vrha prozora.
Pošaljimo javni ključ jednostavnim kopiranjem na terminal. Otvori git i povežite se na server kao i obično. Sada kreirajmo “.ssh/authorized_keys” i ograničiti drugim korisnicima pristup datoteci, tako da je dostupna samo kreatoru.
mkdir .ssh
touch .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
Nakon kreiranja datoteke, stavite klijentov javni ključ u nju. U prethodnoj fazi kopirali smo javni ključ u međuspremnik. Za snimanje onoga što je u međuspremniku u datoteku koristite cat komandu i preusmjeravanje izlaza.
cat > .ssh/authorized_keys
Nakon što unesete naredbu, kliknite desnim gumbom miša u prozoru terminala i zalijepite ono što se nalazi u međuspremniku. Za potvrdu unosa pritisnite “Ctrl + D” prečica i prekinuti vezu sa serverom.
Sada odredimo putanju do privatnog ključa u Puttyju i ponovo se povežimo na server.
Od sada, da biste se povezali sa serverom, potrebno je samo da unesete korisničko ime. Ako se pokušavate povezati sa serverom s drugog uređaja koji nema pravi privatni ključ, server će zatražiti lozinku. Nakon što je autentifikacija zasnovana na ključu postavljena, možete zabraniti pristup lozinkom.