Kā konfigurēt pielāgotus SSH savienojumus, lai vienkāršotu attālo piekļuvi


SSH (SSH klients) ir programma attālinātai piekļuvei mašīnai, un tā ļauj lietotājam izpildīt komandas attālajā resursdatorā. Tā ir viena no ieteicamākajām metodēm, lai pieteiktos attālajā resursdatorā, jo tā ir paredzēta, lai nodrošinātu drošu šifrētu saziņu starp diviem neuzticamiem resursdatoriem nedrošā tīklā.

SSH izmanto gan visas sistēmas, gan arī lietotāja specifisku (pielāgotu) konfigurācijas failu. Šajā apmācībā mēs paskaidrosim, kā izveidot pielāgotu ssh konfigurācijas failu un izmantot noteiktas opcijas, lai izveidotu savienojumu ar attālajiem resursdatoriem.

  1. Linux darbvirsmā jābūt instalētam OpenSSH klientam.
  2. Izprotiet parastās iespējas, kas tiek izmantotas attālajiem savienojumiem, izmantojot ssh.

Tālāk ir norādītas ssh klienta konfigurācijas failu atrašanās vietas:

  1. /etc/ssh/ssh_config - tas ir noklusējuma konfigurācijas fails visā sistēmā. Tajā ir iestatījumi, kas attiecas uz visiem ssh klienta mašīnas lietotājiem.
  2. ~/.ssh/config vai $HOME/.ssh/config - ir lietotāja specifisks/pielāgots konfigurācijas fails. Tam ir konfigurācijas, kas attiecas uz konkrētu lietotāju. Tāpēc tas ignorē noklusējuma iestatījumus visas sistēmas konfigurācijas failā. Šo failu mēs izveidosim un izmantosim.

Pēc noklusējuma lietotāji tiek autentificēti ssh, izmantojot paroles, taču jūs varat iestatīt ssh pieteikšanos bez paroles, izmantojot ssh keygen, veicot 5 vienkāršas darbības.

Piezīme. Ja darbvirsmas sistēmā nepastāv direktorija ~/.ssh , izveidojiet to ar šādām atļaujām.

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

Iepriekš minētā komanda chmod nozīmē, ka tikai lietotājam var būt lasīšanas, rakstīšanas un izpildes atļaujas direktorijā, kā to prasa ssh iestatījumi.

Kā izveidot lietotājam specifisku SSH konfigurācijas failu

Šis fails parasti netiek izveidots pēc noklusējuma, tāpēc jums tas jāizveido, izmantojot tikai lietotāja lasīšanas/rakstīšanas atļaujas.

$ touch ~/.ssh/config
$ chmod 0700 ~/.ssh/config

Iepriekš minētajā failā ir sadaļas, kuras definē resursdatoru specifikācijas, un sadaļa tiek piemērota tikai resursdatoriem, kas atbilst vienam no specifikācijā iestatītajiem modeļiem.

Parastais ~/.ssh/config formāts ir šāds, un visas tukšās rindas, kā arī rindas, kas sākas ar ‘#’ , tiek uzskatītas par komentāriem:

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

No iepriekš minētā formāta:

  1. Host host1 - galvenes definīcija host1, šeit sākas resursdatora specifikācija un tā beidzas ar nākamo galvenes definīciju, Host Host2 izveidojot sadaļu.
  2. host1, host2 ir vienkārši resursdatora aizstājvārdi, kas jāizmanto komandrindā, tie nav attālo resursdatoru faktiskie resursdatoru nosaukumi.
  3. Konfigurācijas opcijas, piemēram, ssh_option1 = value1, ssh_option2 = value1 value2, tiek piemērotas saskaņotajam resursdatoram, un tām jābūt ievilktām, lai labi organizētu formatējumu.
  4. Opcijai, piemēram, ssh_option2 = value1 value2, vispirms tiek ņemta vērā vērtība value1, pēc tam vērtība2.
  5. Galvenes definīcija Host * (kur * ir modelis - aizstājējzīme, kas atbilst nullei vai vairāk rakstzīmēm) sakritīs ar nulli vai vairāk resursdatoriem.

Joprojām ņemot vērā iepriekš minēto formātu, šādā veidā ssh nolasa konfigurācijas failu. Ja izpildāt komandu ssh, lai attālināti piekļūtu host1, rīkojieties šādi:

$ ssh host1

Iepriekš ssh komanda veiks šādas darbības:

  1. konfigurācijas failā sakrīt ar resursdatora aizstājvārdu host1 un izmanto definīcijas galvenē Host Host1 iestatītās opcijas.
  2. pēc tam pāriet uz nākamo resursdatora sadaļu Host Host2 un konstatē, ka komandrindā norādītais vārds nesakrīt, tāpēc šeit netiek izmantotas opcijas.
  3. Tas pāriet uz pēdējo sadaļu Host *, kas atbilst visiem resursdatoriem. Šeit visas šīs sadaļas opcijas tiek izmantotas resursdatora savienojumam. Bet tas nevar ignorēt nevienu opciju vērtību, kas jau tika izmantota iepriekšējā (-s) sadaļā (-ās).
  4. Tas pats attiecas uz 2. resursdatoru.

Kā lietot lietotājam specifisku SSH konfigurācijas failu

Kad esat sapratis, kā darbojas ssh klienta konfigurācijas fails, varat to izveidot šādi. Neaizmirstiet izmantot servera videi piemērojamās opcijas un vērtības (resursdatora aizstājvārdi, porta numuri, lietotājvārdi un tā tālāk).

Atveriet konfigurācijas failu ar iecienītāko redaktoru:

$ vi ~/.ssh/config

Un definējiet nepieciešamās sadaļas:

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

Detalizēts iepriekš minēto ssh konfigurācijas iespēju skaidrojums.

  1. HostName - nosaka reālo resursdatora nosaukumu, kurā pieteikties, kā arī varat izmantot ciparu IP adreses, tas ir arī atļauts (gan komandrindā, gan HostName specifikācijās).
  2. Lietotājs - norāda lietotāju, kuram jāpiesakās kā.
  3. Port - iestata porta numuru, lai izveidotu savienojumu ar attālo resursdatoru, pēc noklusējuma ir 22. Izmantojiet attālā resursdatora sshd konfigurācijas failā konfigurēto porta numuru.
  4. Protokols - šī opcija nosaka protokola versijas, kuras ssh jāatbalsta prioritāšu secībā. Parastās vērtības ir ‘1’ un ‘2’, vairākām versijām jābūt atdalītām ar komatu.
  5. IdentityFile - norāda failu, no kura tiek nolasīta lietotāja DSA, Ed25519, RSA vai ECDSA autentifikācijas identitāte.
  6. ForwardX11 - nosaka, vai X11 savienojumi tiks automātiski novirzīti pa drošo kanālu un iestatīts DISPLAY. Tam ir divas iespējamās vērtības “jā” vai “nē”.
  7. Kompresija - to izmanto, lai iestatītu saspiešanu attālā savienojuma laikā ar vērtību “jā”. Noklusējums ir “nē”.
  8. ServerAliveInterval - iestata taimauta intervālu sekundēs, pēc kura, ja no servera nav saņemta atbilde (vai dati), ssh sūtīs ziņojumu caur šifrēto kanālu, lai pieprasītu atbildi no servera. Noklusējuma vērtība ir 0, kas nozīmē, ka uz serveri netiks nosūtīti ziņojumi, vai 300, ja ir definēta opcija BatchMode.
  9. ServerAliveCountMax - nosaka servera dzīvo ziņojumu skaitu, kurus var nosūtīt, ssh nesaņemot atbildi no servera.
  10. LogLevel - nosaka daudzbalsības līmeni, kas tiek izmantots, reģistrējot ziņojumus no ssh. Atļautās vērtības ietver: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 un DEBUG3. Un noklusējums ir INFO.

Standarta veids, kā izveidot savienojumu ar jebkuru attālo Linux resursdatoru (manā gadījumā - CentOS 7), kas definēts iepriekš minētā konfigurācijas faila otrajā sadaļā, mēs parasti ierakstīsim zemāk esošo komandu:

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

Tomēr, izmantojot ssh klienta konfigurācijas failu, mēs varam vienkārši ierakstīt šādu komandu:

$ ssh centos7 

Vairāk opciju un lietošanas piemēru varat atrast ssh klienta konfigurācijas rokasgrāmatas lapā:

$man ssh_config

Tas ir viss, šajā rokasgrāmatā mēs paskaidrojām, kā Linux lietot lietotājam specifisku (pielāgotu) ssh klienta konfigurācijas failu. Izmantojiet tālāk sniegto atsauksmju veidlapu, lai rakstītu mums atpakaļ par šo rakstu.