L-aktar Użu u Konfigurazzjoni Komuni tal-Kmand SSH fil-Linux


Qosor: F'din il-gwida, se niddiskutu l-każijiet ta' użu komuni ta' SSH. Aħna ser niddiskutu wkoll konfigurazzjonijiet SSH użati b'mod komuni li jistgħu jintużaw fil-ħajja ta 'kuljum biex tingħata spinta lill-produttività tiegħek.

Secure Shell (SSH) huwa protokoll tan-netwerk adottat b'mod wiesa ', li jippermettilna li jinteraġixxu ma' hosts remoti b'mod sikur. Tipprovdi sigurtà billi tikkodifika l-komunikazzjoni kollha bejniethom.

Kif tuża l-Kmand SSH fil-Linux

F'din it-taqsima, ser niddiskutu xi wħud mill-każijiet ta 'użu popolari tal-protokoll SSH.

Hemm diversi modi biex jinteraġixxu ma 'hosts Linux remoti bl-użu ta' protokolli bħal telnet, netcat, eċċ. Madankollu, dawn mhumiex sikuri minħabba n-nuqqas ta 'encryption. Nistgħu nużaw il-protokoll SSH biex nippermettu komunikazzjoni sigura bejn l-ospiti.

Irridu nużaw klijent SSH biex jinteraġixxu mal-host remot. Hemm ħafna klijenti bbażati fuq GUI u CLI disponibbli għal Linux. Madankollu, matul din il-gwida, se nużaw utilità tal-linja tal-kmand imsejħa ssh. B'mod awtomatiku, l-utilità ssh hija disponibbli fuq il-biċċa l-kbira tad-distribuzzjonijiet tal-Linux.

Is-sintassi tal-kmand SSH hija kif ġej:

$ ssh [OPTIONS]  [COMMANDS] [ARGS]

Hawnhekk, il-parentesi kwadri ([]) jirrappreżentaw l-argumenti fakultattivi filwaqt li l-parentesi angolari (<>) jirrappreżentaw l-argumenti obbligatorji.

Ejja nikkonnettjaw mal-host remot billi tuża l-klijent ssh:

$ ssh -l root 192.168.19.130

F'dan l-eżempju, speċifikajna l-isem tal-login billi tuża l-għażla -l u d-destinazzjoni hija 192.168.19.130. Il-konnessjoni SSH tiġi stabbilita wara li ddaħħal il-password korretta. Issa 'l quddiem, nistgħu nwettqu l-kmandi fuq il-host remot bħas-sistema lokali.

# hostname

Biex ttemm is-sessjoni, nistgħu nużaw il-kmand tal-ħruġ jew il-kombinazzjoni taċ-ċwievet ctrl+D.

Huwa importanti li wieħed jinnota li rridu nawtentikaw mal-host remot għal kull sessjoni ġdida. Biex nevitaw li ndaħħlu passwords kull darba, nistgħu nwaqqfu login SSH mingħajr password.

Fit-taqsima preċedenti, rajna kif nistabbilixxu konnessjoni ma 'host remot, li hija adattata biss meta ser nużaw l-host remot għal tul ta' żmien itwal. Xi drabi, għandna bżonn biss li tesegwixxi kmandi wieħed jew tnejn fuq il-host remot. F'każijiet bħal dawn, nistgħu nwettqu dawk il-kmandi mingħajr ma noħolqu sessjoni fit-tul.

Ejja nwettqu l-kmand tal-isem tal-host fuq il-host remot:

$ ssh -l root 192.168.19.130 hostname

B'mod simili, nistgħu nwettqu kmandi multipli fuq magna Linux remota:

$ ssh -l root 192.168.19.130 'hostname; pwd'

Huwa importanti li wieħed jinnota li, il-kmandi għandhom ikunu magħluqa fil-kwotazzjonijiet u separati bil-karattru ta' punt u virgola (;). Jekk trid tmexxi kmandi fuq hosts Linux remoti multipli, aqra l-artiklu tagħna - Pssh - Mexxi Kmandi fuq Hosts Linux Remoti multipli.

Simili għall-kmandi nistgħu wkoll tesegwixxi script lokali fuq il-host remot. Ejja nifhmu dan b'eżempju.

L-ewwel, oħloq script shell sempliċi fuq magna lokali b'permessi eżekutibbli fuqha:

$ cat script.sh 

hostname
pwd

Issa, ejja tesegwixxiha fuq il-host remot:

$ ssh [email protected] 'bash -s' < ./script.sh 

F'dan l-eżempju, użajna l-għażla -s tal-bash biex naqraw l-iskrittura mill-input standard.

Aħna naħdmu mal-fajls u direttorji ħafna drabi. Operazzjoni komuni li jagħmlu l-utenti hija li tikkopja direttorji u fajls. Eżatt bħal magni lokali, nistgħu nikkopja fajls u direttorji bejn l-ospiti remoti billi tuża l-kmand scp, li tikkopja l-fajls b'mod sigur billi tuża l-protokoll SSH.

Ejja nikkopja l-fajl script.sh fid-direttorju /tmp tal-host remot:

$ scp script.sh [email protected]:/tmp

Issa, ivverifika li l-fajl ġie kkupjat:

$ ssh [email protected] 'ls /tmp/script.sh'

B'mod simili, nistgħu nużaw il-kmand scp biex nikkopja d-direttorji. Madankollu, irridu nużaw l-għażla -r mal-kmand.

SSH jappoġġja l-kompressjoni tad-dejta bl-użu tal-algoritmu tal-kompressjoni gzip, li jikkompressa l-flussi tad-dejta kollha possibbli bħal stdin, stdout, stderr, eċċ. Din l-għażla tiġi utli ħafna waqt li tuża konnessjonijiet tan-netwerk bil-mod.

Nistgħu nippermettu l-kompressjoni fuq SSH billi tuża l-għażla -C:

$ ssh -C -l root 192.168.19.130 'hostname' 

L-utenti tal-Linux spiss ikollhom bżonn jiddebugjaw is-sessjonijiet SSH biex jinvestigaw diversi kwistjonijiet relatati mal-konnessjoni u l-konfigurazzjoni SSH. F'każijiet bħal dawn, nistgħu nippermettu l-mod verbose li jistampa r-reġistri tad-debug tas-sessjoni attwali.

Ejja nippermettu l-modalità verbose billi tuża l-għażla -v:

$ ssh -v -l root 192.168.19.130 hostname

B'żieda ma 'dan, nistgħu nżidu l-livell ta' verbosity billi nużaw l-għażliet multipli -v.

  • -v – jistabbilixxi l-livell ta’ verbosità għal 1 u jipprovdi dettalji dwar l-attivitajiet min-naħa tal-klijent.
  • -vv – jistabbilixxi l-livell ta’ verbosità għal 2 u jipprovdi dettalji dwar l-attivitajiet min-naħa tal-klijent u tas-server.
  • -vvv – jistabbilixxi l-livell ta’ verbosità għal 3 u jipprovdi informazzjoni aktar dettaljata dwar l-attivitajiet min-naħa tal-klijent u tas-server.

Il-livell massimu ta' verbosità appoġġjat minn SSH huwa 3. Ejja naraw dan fl-azzjoni:

$ ssh -vvv -l root 192.168.19.130 hostname

Fl-eżempju ta 'hawn fuq, debug1 jirrappreżenta l-messaġġ ta' debug attivat mil-livell ta' verbosity 1. Bl-istess mod, debug2 u debug3 jirrappreżentaw il-messaġġi ta 'debug attivati mil-livelli ta' verbosity 2 u 3 rispettivament.

Nistgħu nużaw sekwenzi ta 'ħarba bl-SSH biex niġġestixxu s-sessjonijiet tat-terminal tal-klijent. Ejja niddiskutu s-sekwenzi ta’ ħarba użati b’mod komuni bil-każijiet ta’ użu xierqa.

Xi drabi, irridu nwettqu ftit attivitajiet fuq il-magna lokali mingħajr ma ttemm is-sessjoni SSH attwali. F'xenarju bħal dan, nistgħu nissospendi s-sessjoni kurrenti billi tuża s-sekwenza taċ-ċavetta ~ + ctrl+z.

L-ewwel, idħol mal-host remot u wettaq il-kmand tal-isem tal-host:

$ ssh -l root 192.168.19.130
# hostname

Sussegwentement, biex tissospendi s-sessjoni kurrenti l-ewwel ittajpja tilde (~) karattru u mbagħad agħfas it-tasti ctrl+z. Huwa importanti li wieħed jinnota li l-karattru tilde (~) mhux se jintwera fuq l-istdout sakemm nagħslu ctrl+z.

Issa, ejja nivverifikaw li s-sessjoni ġiet sospiża:

$ jobs

Hawnhekk, nistgħu naraw li s-sessjoni SSH attwali qed taħdem fl-isfond.

Ejja nerġgħu nibdew is-sessjoni billi tuża l-kmand fg u tesegwixxi l-kmand tal-hostname:

$ fg %1

Jien ċert li trid rajt is-sessjonijiet SSH iffriżati, li jiġri meta s-sessjoni tiġi interrotta minn netwerk instabbli. Hawnhekk, ma nistgħux nabbandunaw is-sessjoni billi tuża l-kmand tal-ħruġ. Madankollu, nistgħu ntemmuha billi tuża s-sekwenza taċ-ċavetta \~ + .\.

L-ewwel, idħol mal-host remot:

$ ssh -l root 192.168.19.130

Issa uża l-kombinazzjoni ta' \~ + .\ biex ittemm is-sessjoni attwali.

F'dan l-eżempju, nistgħu naraw li SSH juri l-messaġġ - Konnessjoni għal 192.168.19.130 magħluqa.

Ħaġa waħda interessanti hija li hemm sekwenza ta 'ħarba biex telenka s-sekwenzi ta' ħarba kollha appoġġjati. Nistgħu nużaw is-sekwenza ta' ħarba \~ + ? biex telenkaw is-sekwenzi ta' ħarba appoġġjati:

Hawnhekk, irridu nagħfsu ċ-ċavetta enter biex toħroġ mill-menu tal-għajnuna.

Kif tikkonfigura SSH fil-Linux

F'din it-taqsima, ser niddiskutu l-konfigurazzjoni tan-naħa tas-server biex tibbies is-server SSH. Is-server SSH jaħżen il-konfigurazzjoni kollha tiegħu fil-fajl /etc/ssh/sshd_config. Huwa importanti li wieħed jinnota li, huwa meħtieġ aċċess għall-utent root biex taġġorna l-konfigurazzjoni SSH.

Bħala l-aħjar prattika, għandna dejjem nuru l-banner qabel ma nistabbilixxu konnessjoni SSH. F'xi każijiet, jiskoraġġixxi utenti mhux awtorizzati milli jaċċessaw hosts remoti. Ejja naraw kif nippermettu dan l-issettjar pass pass.

L-ewwel, oħloq fajl ta’ test fuq server remot b’messaġġ ta’ twissija:

# vi /etc/banner.txt 

Sussegwentement, żid il-messaġġ tal-banner li ġej:

*********************************************************************
Warning !!! You are trying to log in to techmint.com's server.
All the activities on this server are monitored.
Terminate the session immediately if you are not an authorized user.
*********************************************************************

Sussegwentement, iftaħ il-fajl /etc/ssh/sshd_config u speċifika l-fajl bid-direttiva Banner:

Banner /etc/banner.txt

Issa, ibda mill-ġdid is-servizz sshd u ittemm is-sessjoni billi tuża l-kmand tal-ħruġ:

# systemctl restart sshd
# exit

Fl-aħħarnett, ivverifika l-banner billi tidħol fil-host remot:

$ ssh -l root 192.168.19.130

Hawnhekk, nistgħu li s-server juri l-banner SSH b'mod korrett.

S'issa, użajna l-utent għerq biex jaċċessa l-host remot. Madankollu, dan imur kontra l-prinċipju tal-inqas privileġġ. F'ambjent ta 'produzzjoni, l-aċċess għall-utent root huwa dejjem ristrett biex titjieb is-sigurtà.

Nistgħu nużaw id-direttiva PermitRootLogin biex tiddiżattiva l-login tal-utent root.

L-ewwel, iftaħ il-fajl /etc/ssh/sshd_config u uża l-għażla no mad-direttiva PermitRootLogin:

PermitRootLogin no

Issa, ibda mill-ġdid is-servizz sshd u ittemm is-sessjoni billi tuża l-kmand tal-ħruġ:

# systemctl restart sshd
# exit

Fl-aħħarnett, ivverifika dan billi toħloq sessjoni SSH ġdida:

$ ssh -l root 192.168.19.130

Hawnhekk, nistgħu nosservaw li ma nistgħux nilloggjaw mal-host remot mal-utent għerq. Biex inħallu l-login tal-utent root nistgħu nużaw l-għażla iva bl-istess direttiva.

B'mod awtomatiku, SSH juża l-port TCP 22. Madankollu, nistgħu kkonfigurat SSH biex jaħdem fuq port differenti jiġifieri 8088.

L-ewwel, iftaħ il-fajl /etc/ssh/sshd_config u uża l-valur 8088 mad-direttiva tal-Port:

Port 8088

Sussegwentement, ibda mill-ġdid is-servizz sshd u ittemm is-sessjoni:

# systemctl restart sshd
# exit

Issa, ejja illoggja mal-host remot:

$ ssh -p 8088 -l root 192.168.19.130

F'dan l-eżempju, użajna l-għażla -p biex nispeċifikaw in-numru tal-port.

F'xi każijiet, irridu nwettqu ftit passi oħra biex inħallu l-komunikazzjoni fuq port mhux default. Bħall-identifikazzjoni tal-portijiet disponibbli, l-aġġornament tar-regoli tal-firewall, is-settings ta 'SELinux, eċċ.

F'dan l-artikolu, iddiskutejna l-protokoll SSH u l-każijiet ta 'użu komuni tiegħu. Sussegwentement, iddiskutejna ftit għażliet komuni. Fl-aħħarnett, iddiskutejna xi wħud mis-settings biex niżguraw is-server SSH.

Taf bl-aħjar użu ieħor tal-kmand SSH fil-Linux? Għidilna l-fehmiet tiegħek fil-kummenti hawn taħt.