Labing Kasagaran nga Paggamit ug Pag-configure sa SSH Command sa Linux


Mubo: Niini nga giya, atong hisgotan ang kasagarang mga kaso sa paggamit sa SSH. Hisgutan usab namo ang kasagarang gigamit nga mga configuration sa SSH nga magamit sa adlaw-adlaw nga kinabuhi aron mapalambo ang imong produktibidad.

Ang Secure Shell (SSH) usa ka kaylap nga gisagop nga network protocol, nga nagtugot kanamo nga makig-uban sa hilit nga mga host sa luwas nga paagi. Naghatag kini og seguridad pinaagi sa pag-encrypt sa tanan nga komunikasyon tali kanila.

Giunsa Paggamit ang SSH Command sa Linux

Niini nga seksyon, atong hisgutan ang pipila sa mga popular nga kaso sa paggamit sa SSH protocol.

Adunay lain-laing mga paagi sa pagpakig-uban sa mga hilit nga Linux host gamit ang mga protocol sama sa telnet, netcat, ug uban pa. Apan, kini dili luwas tungod sa pagkawala sa encryption. Mahimo natong gamiton ang SSH protocol aron tugotan ang luwas nga komunikasyon tali sa mga host.

Kinahanglan namon nga mogamit usa ka kliyente sa SSH aron makig-uban sa hilit nga host. Adunay daghang mga kliyente nga nakabase sa GUI ug CLI nga magamit alang sa Linux. Bisan pa, sa tibuok niini nga giya, mogamit kami og command line utility nga gitawag og ssh. Sa kasagaran, ang ssh utility anaa sa kadaghanan sa mga distribusyon sa Linux.

Ang syntax sa SSH command mao ang mosunod:

$ ssh [OPTIONS]  [COMMANDS] [ARGS]

Dinhi, ang square bracket ([]) nagrepresentar sa opsyonal nga argumento samtang angular bracket (<>) nagrepresentar sa mandatory nga argumento.

Magkonektar kita sa hilit nga host gamit ang ssh client:

$ ssh -l root 192.168.19.130

Niini nga pananglitan, among gipiho ang login name gamit ang -l nga opsyon ug ang destinasyon mao ang 192.168.19.130. Ang koneksyon sa SSH matukod pagkahuman sa pagsulod sa husto nga password. Karon sa unahan, mahimo naton ipatuman ang mga mando sa hilit nga host sama sa lokal nga sistema.

# hostname

Aron tapuson ang sesyon, mahimo natong gamiton ang exit command o ctrl+D key combination.

Mahinungdanon nga timan-an nga kinahanglan naton nga pamatud-an ang hilit nga host alang sa matag bag-ong sesyon. Aron malikayan ang pagsulod sa mga password matag higayon, mahimo namong i-set up ang SSH passwordless login.

Sa miaging seksyon, nakita namon kung giunsa ang paghimo usa ka koneksyon sa usa ka hilit nga host, nga angay lamang kung gamiton namon ang hilit nga host sa mas taas nga gidugayon. Usahay, kinahanglan ra naton nga ipatuman ang usa o duha nga mga mando sa hilit nga host. Sa ingon nga mga kaso, mahimo naton ipatuman ang mga mando nga wala maghimo usa ka dugay nga sesyon.

Atong ipatuman ang hostname command sa remote host:

$ ssh -l root 192.168.19.130 hostname

Sa susama nga paagi, mahimo natong ipatuman ang daghang mga sugo sa usa ka hilit nga makina sa Linux:

$ ssh -l root 192.168.19.130 'hostname; pwd'

Mahinungdanon nga timan-an nga, ang mga mando kinahanglan nga gilakip sa sulod sa mga kinutlo ug gibulag sa semi-colon (;) karakter. Kung gusto nimo magpadagan og mga command sa daghang hilit nga Linux host, basaha ang among artikulo - Pssh - Run Commands sa Multiple Remote Linux Hosts.

Susama sa mga sugo mahimo usab natong ipatuman ang usa ka lokal nga script sa hilit nga host. Atong sabton kini uban ang usa ka pananglitan.

Una, paghimo og usa ka yano nga shell script sa usa ka lokal nga makina nga adunay mga executable nga permiso niini:

$ cat script.sh 

hostname
pwd

Karon, ipatuman nato kini sa hilit nga host:

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

Niini nga pananglitan, among gigamit ang -s nga opsyon sa bash aron mabasa ang script gikan sa standard input.

Kanunay kaming nagtrabaho kauban ang mga file ug direktoryo. Usa ka sagad nga operasyon nga gihimo sa mga tiggamit mao ang pagkopya sa mga direktoryo ug mga file. Sama sa mga lokal nga makina, mahimo natong kopyahon ang mga file ug mga direktoryo tali sa mga remote host gamit ang scp command, nga luwas nga magkopya sa mga file gamit ang SSH protocol.

Atong kopyahon ang script.sh file sa /tmp nga direktoryo sa hilit nga host:

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

Karon, pamatud-i nga ang file nakopya:

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

Sa susamang paagi, magamit nato ang scp command aron kopyahon ang mga direktoryo. Apan, kinahanglan natong gamiton ang -r nga opsyon uban sa sugo.

Gisuportahan sa SSH ang data compression gamit ang gzip compression algorithm, nga nag-compress sa tanang posibleng data streams sama sa stdin, stdout, stderr, ug uban pa. Kini nga kapilian magamit kaayo samtang naggamit sa hinay nga mga koneksyon sa network.

Mahimo natong palihokon ang compression sa SSH gamit ang -C nga opsyon:

$ ssh -C -l root 192.168.19.130 'hostname' 

Ang mga tiggamit sa Linux kanunay kinahanglan nga mag-debug sa mga sesyon sa SSH aron masusi ang lainlaing koneksyon sa SSH ug mga isyu nga may kalabotan sa pag-configure. Sa ingon nga mga kaso, mahimo namon nga magamit ang verbose mode nga nag-imprinta sa mga debug log sa karon nga sesyon.

Atong himoon ang verbose mode gamit ang -v nga opsyon:

$ ssh -v -l root 192.168.19.130 hostname

Dugang pa niini, mahimo natong dugangan ang lebel sa verbosity pinaagi sa paggamit sa daghang -v nga mga opsyon.

  • -v – nagbutang sa verbosity level ngadto sa 1 ug naghatag og mga detalye mahitungod sa mga kalihokan sa kilid sa kliyente.
  • -vv – nagbutang sa verbosity level ngadto sa 2 ug naghatag og mga detalye mahitungod sa kliyente ug sa server-side nga mga kalihokan.
  • -vvv – nagbutang sa verbosity level ngadto sa 3 ug naghatag ug mas detalyadong impormasyon bahin sa kliyente ug server-side nga mga kalihokan.

Ang labing taas nga lebel sa verbosity nga gisuportahan sa SSH mao ang 3. Atong tan-awon kini sa aksyon:

$ ssh -vvv -l root 192.168.19.130 hostname

Sa pananglitan sa ibabaw, ang debug1 nagrepresentar sa debug nga mensahe nga gipagana sa verbosity level 1. Sa susama, ang debug2 ug debug3 nagrepresentar sa debug nga mga mensahe nga gipagana sa verbosity level 2 ug 3 matag usa.

Mahimo natong gamiton ang mga han-ay sa pag-ikyas sa SSH aron pagdumala sa mga sesyon sa terminal sa kliyente. Hisgutan nato ang kasagarang gigamit nga mga han-ay sa pag-ikyas uban sa angay nga mga kaso sa paggamit.

Usahay, kinahanglan namong buhaton ang pipila ka mga kalihokan sa lokal nga makina nga dili tapuson ang karon nga sesyon sa SSH. Sa maong senaryo, mahimo natong suspindihon ang kasamtangang sesyon gamit ang ~ + ctrl+z key sequence.

Una, pag-log in sa hilit nga host ug ipatuman ang hostname command:

$ ssh -l root 192.168.19.130
# hostname

Sunod, aron masuspinde ang kasamtangan nga sesyon una i-type ang tilde (~) character ug dayon pindota ang ctrl+z keys. Mahinungdanon nga timan-an nga ang tilde (~) nga karakter dili ipakita sa stdout hangtod atong mapindot ang ctrl+z.

Karon, atong pamatud-an nga ang sesyon gisuspinde:

$ jobs

Dinhi, atong makita nga ang kasamtangan nga sesyon sa SSH nagdagan sa background.

Atong ipadayon pag-usab ang sesyon gamit ang fg command ug ipatuman ang hostname command:

$ fg %1

Sigurado ko nga nakita nimo ang nagyelo nga mga sesyon sa SSH, nga mahitabo kung ang sesyon mabalda sa usa ka dili lig-on nga network. Dinhi, dili nato i-abort ang session gamit ang exit command. Apan, mahimo natong tapuson kini gamit ang \~ + .\ key sequence.

Una, pag-log in sa hilit nga host:

$ ssh -l root 192.168.19.130

Karon gamita ang \~ + .\ key combination para tapuson ang kasamtangang session.

Niini nga pananglitan, atong makita nga ang SSH nagpakita sa mensahe - Koneksyon sa 192.168.19.130 sirado.

Usa ka makapaikag nga butang mao nga adunay usa ka pagkasunod-sunod sa pag-ikyas aron ilista ang tanan nga gisuportahan nga mga han-ay sa pag-ikyas. Magamit nato ang \~ + ?” escape sequence para ilista ang gisuportahan nga escape sequence:

Dinhi, kinahanglan naton ipadayon ang enter key aron mogawas gikan sa menu sa tabang.

Giunsa ang Pag-configure sa SSH sa Linux

Niini nga seksyon, atong hisgutan ang configuration sa server-side aron matig-a ang SSH server. Gitipigan sa SSH server ang tanan nga configuration niini sa /etc/ssh/sshd_config file. Importante nga hinumdoman nga, gikinahanglan ang pag-access sa gamut nga user aron ma-update ang configuration sa SSH.

Isip usa ka labing maayo nga praktis, kinahanglan nga kanunay natong ipakita ang bandila sa dili pa magtukod og koneksyon sa SSH. Sa pipila ka mga kaso, gipugngan niini ang dili awtorisado nga mga tiggamit sa pag-access sa mga hilit nga host. Atong tan-awon kon unsaon pag-enable kini nga setting sa matag lakang.

Una, paghimo og text file sa layo nga server nga adunay mensahe sa pasidaan:

# vi /etc/banner.txt 

Sunod, idugang ang mosunod nga mensahe sa banner:

*********************************************************************
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.
*********************************************************************

Sunod, ablihi ang /etc/ssh/sshd_config file ug ipiho ang file gamit ang Banner direktiba:

Banner /etc/banner.txt

Karon, i-restart ang serbisyo sa sshd ug tapuson ang sesyon gamit ang exit command:

# systemctl restart sshd
# exit

Sa katapusan, pamatud-i ang bandila pinaagi sa pag-log in sa hilit nga host:

$ ssh -l root 192.168.19.130

Dinhi, mahimo naton nga ang server magpakita sa SSH banner sa husto.

Sa pagkakaron, gigamit namo ang root user aron ma-access ang remote host. Bisan pa, kini supak sa prinsipyo sa labing gamay nga pribilehiyo. Sa usa ka palibot sa produksiyon, ang pag-access sa gamut nga tiggamit kanunay gipugngan aron mapauswag ang seguridad.

Mahimo namong gamiton ang direktiba sa PermitRootLogin aron ma-disable ang root user login.

Una, ablihi ang /etc/ssh/sshd_config file ug gamita ang opsyon no uban ang PermitRootLogin nga direktiba:

PermitRootLogin no

Karon, i-restart ang serbisyo sa sshd ug tapuson ang sesyon gamit ang exit command:

# systemctl restart sshd
# exit

Sa katapusan, pamatud-i kini pinaagi sa paghimo og bag-ong sesyon sa SSH:

$ ssh -l root 192.168.19.130

Dinhi, atong maobserbahan nga dili kita maka-log in sa hilit nga host nga adunay gamut nga tiggamit. Aron tugotan ang root user login mahimo namong gamiton ang opsyon yes nga adunay parehas nga direktiba.

Sa kasagaran, ang SSH naggamit sa TCP port 22. Apan, mahimo natong i-configure ang SSH nga modagan sa laing pantalan ie 8088.

Una, ablihi ang/etc/ssh/sshd_config file ug gamita ang 8088 nga kantidad sa direktiba sa Port:

Port 8088

Sunod, i-restart ang serbisyo sa sshd ug tapuson ang sesyon:

# systemctl restart sshd
# exit

Karon, mag-login kita sa hilit nga host:

$ ssh -p 8088 -l root 192.168.19.130

Sa kini nga pananglitan, among gigamit ang -p nga kapilian aron itakda ang numero sa pantalan.

Sa pipila ka mga kaso, kita kinahanglan nga mohimo sa pipila ka uban nga mga lakang sa pagtugot sa komunikasyon sa usa ka non-default nga pantalan. Sama sa pag-ila sa magamit nga mga pantalan, pag-update sa mga lagda sa firewall, mga setting sa SELinux, ug uban pa.

Niini nga artikulo, among gihisgutan ang SSH protocol ug ang kasagarang mga kaso sa paggamit niini. Sunod, among gihisgutan ang pipila ka kasagarang mga kapilian. Sa katapusan, among gihisgutan ang pipila sa mga setting aron ma-secure ang SSH server.

Nakahibalo ka ba sa bisan unsang ubang labing maayo nga paggamit sa SSH command sa Linux? Ipahibalo kanamo ang imong mga panglantaw sa mga komento sa ubos.