Android

Ssh naredba

SSH Crash Course | With Some DevOps

SSH Crash Course | With Some DevOps

Sadržaj:

Anonim

Secure Shell (SSH) je kriptografski mrežni protokol koji se koristi za šifriranu vezu između klijenta i poslužitelja. Ssh klijent stvara sigurnu vezu s SSH poslužiteljem na udaljenom računalu. Šifrirana veza može se koristiti za izvršavanje naredbi na poslužitelju, X11 tuneliranje, prosljeđivanje porta i još mnogo toga.

Postoji nekoliko SSH klijenata koji su dostupni i besplatni i komercijalni, s tim da je OpenSSH klijent koji se najviše koristi. Dostupan je na svim glavnim platformama, uključujući Linux, OpenBSD, Windows, macOS i druge.

, objasnit ćemo kako pomoću klijenta ( ssh ) naredbenog retka OpenSSH za prijavu na udaljeni stroj i pokretanje naredbi ili obavljanje drugih operacija.

Instaliranje OpenSSH klijenta

Klijentski program OpenSSH naziva se ssh i može se pozvati s terminala. Paket OpenSSH klijenta nudi i druge SSH uslužne programe kao što su scp i sftp koji su instalirani uz naredbu ssh .

Instaliranje OpenSSH klijenta na Linux

OpenSSH klijent unaprijed je instaliran na većini Linux distribucija. Ako na vašem sustavu nije instaliran ssh klijent, možete ga instalirati pomoću upravitelja paketa distribucije.

Instaliranje OpenSSH-a na Ubuntu i Debian

sudo apt update sudo apt install openssh-client

Instaliranje OpenSSH-a na CentOS i Fedora

sudo dnf install openssh-clients

Instaliranje OpenSSH klijenta na Windows 10

Većina Windows korisnika koristi Putty za povezivanje s udaljenim strojem preko SSH-a. No, najnovije verzije sustava Windows 10 uključuju OpenSSH klijent i poslužitelj. Oba se paketa mogu instalirati putem GUI-ja ili PowerShell-a.

Da biste pronašli točan naziv OpenSSH paketa, upišite sljedeću naredbu:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Naredba bi trebala vratiti ovako nešto:

Name: OpenSSH.Client~~~~0.0.1.0 State: NotPresent Name: OpenSSH.Server~~~~0.0.1.0 State: NotPresent

Nakon što znate naziv paketa, instalirajte ga pokretanjem:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Nakon uspjeha, rezultat će izgledati ovako:

Path: Online: True RestartNeeded: False

Instaliranje OpenSSH klijenta na macOS

macOS se isporučuje s klijentom OpenSSH prema zadanim postavkama.

Kako koristiti ssh naredbu

Za prijavu na udaljeni stroj putem SSH-a moraju se ispuniti sljedeći zahtjevi:

  • SSH poslužitelj mora biti pokrenut na udaljenom stroju. SSH port mora biti otvoren u vatrozidu udaljenog stroja. Morate znati korisničko ime i lozinku za udaljeni račun. Račun mora imati odgovarajuće privilegije za daljinsku prijavu.

Osnovna sintaksa naredbe ssh je sljedeća:

ssh:HOST

Za upotrebu naredbe ssh otvorite svoj Terminal ili PowerShell i utipkajte ssh zatim ime udaljenog računala:

ssh ssh.linuxize.com

Kad se prvi put povežete s udaljenim strojem preko SSH-a, vidjet ćete poruku ispod.

The authenticity of host 'ssh.linuxize.com (192.168.121.111)' can't be established. ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY. Are you sure you want to continue connecting (yes/no)?

Svaki domaćin ima jedinstveni otisak prsta koji se pohranjuje u datoteku ~/.ssh/known_hosts .

Upišite yes za spremanje udaljenog otiska prsta i od vas će se tražiti da unesete svoju lozinku.

Warning: Permanently added 'ssh.linuxize.com' (ECDSA) to the list of known hosts. [email protected]'s password:

Jednom kad unesete lozinku, bit ćete prijavljeni na udaljeni stroj.

Kad korisničko ime nije dano, naredba ssh koristi trenutačno ime za prijavu u sustav.

Da biste se prijavili kao drugi korisnik, navedite korisničko ime i glavnog računala u sljedećem formatu:

ssh username@hostname

Korisničko ime može se navesti i s opcijom -l :

ssh -l username hostname

Prema zadanim postavkama, kada nije dodan nijedan port, SSH klijent će se pokušati povezati s udaljenim serverom na luci 22. Na nekim poslužiteljima administratori mijenjaju zadani SSH port kako bi dodali dodatni sloj sigurnosti poslužitelju smanjujući rizik od automatizirani napadi.

Da biste se povezali na neodređeni priključak, koristite opciju -p da biste odredili port:

ssh -p 5522 username@hostname

ssh -v username@hostname

Da biste povećali razinu verbositeta, koristite -vv ili -vvv .

Naredba ssh prihvaća brojne mogućnosti.

Za potpuni popis svih opcija pročitajte ssh man stranicu tako da upišete man ssh u svoj terminal.

SSH konfiguriraj datoteku

OpenSSH klijent čita opcije postavljene u konfiguracijskoj datoteci za svakog korisnika ( ~/.ssh/config ). U ovu datoteku možete pohraniti različite SSH opcije za svaki udaljeni stroj na koji se povezujete.

Primjer SSH konfiguracije prikazan je u nastavku:

Host dev HostName dev.linuxize.com User mike Port 4422

Kada zazovete ssh klijent upisivanjem ssh dev naredba će pročitati ~/.ssh/config datoteku i upotrijebiti detalje veze koji su određeni za dev host. U ovom primjeru, ssh dev je ekvivalentan sljedećem:

ssh -p 4422 [email protected]

Za više informacija, pogledajte članak o SSH konfiguracijskoj datoteci.

Autentifikacija javnog ključa

SSH protokol podržava razne mehanizme provjere autentičnosti.

Mehanizam provjere autentičnosti utemeljen na javnom ključu omogućava vam prijavu na udaljeni poslužitelj bez potrebe za upisivanjem zaporke.

Ova metoda funkcionira generiranjem para kriptografskih ključeva koji se koriste za autentifikaciju. Privatni ključ sprema se na klijentski uređaj, a javni se ključ prenosi na svaki udaljeni poslužitelj na koji se želite prijaviti. Udaljeni poslužitelj mora biti konfiguriran za prihvaćanje autentičnosti ključa.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Od vas će se tražiti da unesete sigurnu zaporku. Želite li koristiti lozinku, na vama je.

Jednom kada imate par ključeva, kopirajte javni ključ na udaljeni poslužitelj:

ssh-copy-id username@hostname

Unesite lozinku udaljenog korisnika, a javni ključ bit će dodan datoteci authorized_keys udaljenog korisnika.

Nakon što se ključ prenese, možete se prijaviti na udaljeni poslužitelj bez zahtjeva za lozinkom.

Postavljanjem autentifikacije na temelju ključa možete pojednostaviti postupak prijave i povećati ukupnu sigurnost poslužitelja.

Prosljeđivanje luka

SSH tuneliranje ili prosljeđivanje SSH vrata metoda je stvaranja šifrirane SSH veze između klijenta i poslužiteljskog stroja preko koje se mogu prenijeti portovi usluga.

SSH prosljeđivanje korisno je za prijenos mrežnih podataka usluga koje koriste nešifrirani protokol, poput VNC-a ili FTP-a, pristup geo-ograničenom sadržaju ili zaobilazeći zaštitne zidove. U osnovi, možete proslijediti bilo koji TCP port i tunelirati promet putem sigurne SSH veze.

Postoje tri vrste prosljeđivanja SSH priključaka:

Lokalno prosljeđivanje luka

Preusmjeravanje lokalnog porta omogućuje vam prosljeđivanje veze s host klijenta na host SSH poslužitelja, a zatim na odredište host porta.

Za izradu lokalnog prosljeđivanja porta proslijedite opciju -L ssh klijentu:

ssh -L LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname

Opcija -f kaže da se ssh naredba izvodi u pozadini, a -N ne izvršava daljinsku naredbu.

Daljinsko prosljeđivanje priključaka

Daljinsko prosljeđivanje portova je suprotno lokalnom prosljeđivanju luka. Prosljeđuje port s glavnog računala na host klijenta, a zatim na odredišni port.

Opcija -L govori ssh da stvori udaljeno prosljeđivanje porta:

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname

Dinamičko prosljeđivanje priključaka

Dinamičkim prosljeđivanjem portova stvara se SOCKS proxy poslužitelj koji omogućava komunikaciju kroz različite portove.

Za stvaranje dinamičkog prosljeđivanja vrata (SOCKS) proslijedite opciju -D ssh klijentu:

ssh -D LOCAL_PORT -N -f username@hostname

Za detaljnije informacije i detaljnu upute pogledajte članak o tome kako postaviti SSH tuneliranje (prosljeđivanje porta).

Zaključak

Za povezivanje s udaljenim poslužiteljem putem SSH koristite naredbu ssh a slijedi daljinsko korisničko ime i ime računala ( ssh username@hostname ).

Znati kako koristiti ssh naredbu je ključno za upravljanje udaljenim poslužiteljem.

ssh terminal