PIESLĒGTIES
    opened image

    Lai padarītu komandu ievadi, kas ļauj pieslēgties serveriem, ātrāku un ērtāku, pastāv noderīga SSH komandu automātiskās pabeigšanas funkcija. Šī funkcija izmanto konfigurācijas failus. Vislabāk un efektīvāk ir iestatīt automātisko pabeigšanu tīkla mezgliem, kas norādīti .ssh/config, kas ievērojami atvieglo pieslēgšanos nepieciešamajiem serveriem. Šajā materiālā mēs izpētīsim, kā īstenot šo iestatījumu Linux un macOS operētājsistēmās.

     

    Fails .ssh/config spēlē svarīgu lomu hostu saraksta strukturēšanā un piekļuves atvieglošanā, pārvaldot daudzus attālinātos serverus. Tomēr pastāvīga manuāla serveru nosaukumu ievade katru reizi ir neracionāla, tāpēc šo procesu var atvieglot, iestatot automātisko pabeigšanu.

     

    .ssh/config - kas tas ir? 

     

    Teksta dokuments .ssh/config ir fails, kas satur iestatījumus SSH savienojumiem. Ar .ssh/config jūs iegūsiet iespēju izmantot atslēgas, norādīt standarta portus, izveidot pseidonīmus (aliās) serveriem un noteikt citus savienojuma parametrus. Katram hostam šajā konfigurācijā var būt savs unikālais aliass, kas atvieglo SSH pieslēgšanās procesu.

     

    Fails .ssh/config var tikt atvērts ar jums iecienītu redaktoru. Tas var būt, piemēram, gedit, vim vai nano. Ja dokuments .ssh/config neeksistē, to automātiski izveidos, izmantojot komandu. 

     

    Kā izmantot failu, izmantojot iepriekš minētos grafiskos redaktorus?

     

    Redaktors nano:

    nano ~/.ssh/config

    Vim piemērs:

    vim ~/.ssh/config

    Gedit piemērs (grafiskā interfeisa mīļotājiem):

    gedit ~/.ssh/config &

    Ja grafiskā redaktora nav, to var instalēt, izmantojot sekojošo komandu:

    sudo snap install gedit


     

    Teksta faila .ssh/config paraugs:

    nano ~/.ssh/config

    Host example-server

    HostName 192.168.1.100

    User user1

    Port 2222


     

    Tālāk, lai izvairītos no turpmākas pilnas komandas manuālas ievades pieslēgšanai:

    ssh [email protected] -p 2222

    Var izmantot sekojošo variantu:

    ssh example-server


     

    Kāpēc nepieciešama automātiskā pabeigšana?

     

    Ar vairākām praktiskām priekšrocībām, kas ievērojami uzlabo darba ērtumu, automātiskā SSH pabeigšana Ubuntu samazina laiku, kas nepieciešams komandu ievadei, un uzlabo mijiedarbību ar attālinātajiem serveriem. Šeit ir galvenie argumenti par labu automātiskajai pabeigšanai:

     

    • Darba atvieglošana. Automātiskā pabeigšana nodrošina iespēju ātrāk ievadīt nepieciešamās komandas, kas ir īpaši svarīgs elements, strādājot ar garām ceļiem vai sarežģītām komandām. Jums nav jāievada tās manuāli.

    Apskatīsim situāciju, kad jums nepieciešams ievadīt konkrēta hosta adresi. Lai izvairītos no sekojošā varianta ievades:

    ssh [email protected]

    Pietiks uzrakstīt:

    ssh use[TAB]

    Pēc tam nosaukums tiks automātiski pabeigts līdz absolūtajai vērtībai.

     

    • Kļūdu samazināšana. Pateicoties automātiskajai pabeigšanai, samazinās iespēja kļūdīties un nepareizi ievadīt sarežģītas un garas komandas, kas noved pie retākām kļūdām. Automātiskā ievade piedāvā pareizās iespējas, atsaucoties uz iepriekš iestatītajiem hostiem .ssh/config

     

    • SSH darba optimizācija. Automātiskā pabeigšana atpazīst ierakstus ar savienojuma parametriem uz dažādiem hostiem, ja jūsu fails .ssh/config jau ir iestatīts, un pēc tam piedāvā šos ierakstus, rakstot ssh komandu. Pateicoties šādai automātiskās izvēles sistēmai, ir iespējams ātri atrast jau iestatītos serverus un pieslēgties tiem.

     

    Kā to var ierakstīt failā .ssh/config:

    Host myserver

    HostName myserver.com

    User myusername

    Port 2222

     

    Rezultātā, balstoties uz jūsu konfigurācijām, pēc ssh myser[TAB] ievades sistēma ieteiks jums automātiskās pabeigšanas iespējas.

     

    • Viegla darbība ar vairākiem serveriem. Strādājot ar vairākiem serveriem, automātiskās pabeigšanas funkcija ievērojami atvieglo pārvaldības procesu. Nav nepieciešams atcerēties katru kombināciju domēniem vai IP adresēm —  var iztikt ar .ssh/config dokumenta konfigurāciju, un sistēma pati piedāvās iespējamos variantus.

     

    • Laika ekonomija. Izmantojot automātisko SSH pabeigšanu, lietotāji var ietaupīt laiku servera savienojumam, neievadot visu komandu no nulles, bet vienkārši atkārtojot jau esošās komandas vai ceļus. Šī funkcija ir ārkārtīgi noderīga tiem, kas pastāvīgi strādā ar vairākiem attālinātiem serveriem, piemēram, izstrādātājiem un sistēmu administrātoriem. 

     

    • Produktivitātes palielināšana: Automātiskā pabeigšana ļauj koncentrēties uz svarīgākajiem uzdevumiem, minimizējot rutīnas darbības, strādājot ar skriptiem un termināli. Turklāt automātisko pabeigšanu var izmantot arī citos gadījumos, ja viss ir pareizi iestatīts, tas var ievērojami samazināt veicamā darba apjomu un palielināt produktivitāti.

     

    Šīs priekšrocības padara automātisko pabeigšanu par neaizvietojamu rīku gan ekspertiem, gan iesācējiem, kas strādā ar SSH Ubuntu.

     

    Bash-completion automātiskās pabeigšanas konfigurācija SSH

     

    Pirmais posms: iestatīšana

    Lai iestatītu SSH automātisko pabeigšanu, jums būs nepieciešams instalēts bash-completion pakotne. Šī pakotne parasti ir iepriekš instalēta mūsdienu Linux izplatījumos, bet, ja tās nav, to var instalēt.

     

    Bash-completion instalēšana Ubuntu un Debian platformās:

    sudo apt update

    sudo apt install bash-completion


     

    Bash-completion instalēšana CentOS un Fedora platformās:


    sudo yum install bash-completion

    Arch Linux: sudo pacman -S bash-completion

    Aktivizēšana:

    Pabeidzot instalāciju, jums jāpārbauda automātiskās pabeigšanas aktivitāte, pievienojot failam .bashrc vai .bash_profile rindu:

    nano ~/.bashrc

    if [ -f /etc/bash_completion ]; then

        . /etc/bash_completion

    fi

    Kad esat pārbaudījis pabeigšanas aktivizāciju, veiciet termināļa restartēšanu vai izmantojiet sekojošo komandu:

    source ~/.bashrc

     

    Otrais posms: SSH automātiskās pabeigšanas iestatīšana

     

    Otrajā konfigurācijas posmā jums jāpapildina hosti dokumentā .ssh/config ar automātisko pabeigšanu.

    Lai veiktu šo procedūru, izmantojam pabeigšanas skriptu:

    Mēs izveidojam vai rediģējam jau esošo automātiskās pabeigšanas failu /etc/bash_completion.d/. Nākamais skripts palīdzēs automātiski ielādēt nepieciešamos hostus no dokumenta .ssh/config.

    Izveidojiet failu /etc/bash_completion.d/ssh:

    sudo nano /etc/bash_completion.d/ssh


    Ievietojiet sekojošo kodu atvērtajā failā:

    _ssh_hosts() {

        COMPREPLY=($(compgen -W "$(awk '/^Host / {print $2}' ~/.ssh/config)" -- "${COMP_WORDS[COMP_CWORD]}"))

    }

    complete -F _ssh_hosts ssh


     

    Šis skripts iegūst hostu nosaukumus no faila .ssh/config un nodod tos automātiskajai pabeigšanai.

    Saglabājiet failu un aizveriet redaktoru.

    Aktivizējiet izmaiņas:

    source /etc/bash_completion.d/ssh

    Tagad, ievadot komandu ssh un sākot ievadīt hosta nosaukumu, sistēma piedāvās automātiskās pabeigšanas iespējas.

     

    Darba pārbaude

    Lai pārbaudītu automātiskās pabeigšanas darbību, vienkārši sāciet ievadīt SSH komandu un nospiediet taustiņu Tab. Ja viss ir pareizi iestatīts, sistēma piedāvās pieejamo hostu sarakstu no jūsu faila .ssh/config.

    Piemērs:

    ssh exa<Tab>

    Rezultāts:

    ssh example-server


     

    Atbalsts automātiskajai pabeigšanai citām apvalkām

    Automātiskā pabeigšana ir iespējama ne tikai Bash. Ja jūs izmantojat citas apvalkas, piemēram, Zsh, automātisko pabeigšanu arī var iestatīt.

     

    Automātiskās pabeigšanas iestatīšana Zsh

    Zsh lietotājiem iestatīšanas process ir nedaudz atšķirīgs. Jums jāieraksta sekojošā rinda failā .zshrc, lai pārliecinātos par automātiskās pabeigšanas aktivitāti:

    autoload -U compinit && compinit 

    Nākamais solis ir izveidot automātiskās pabeigšanas režīmu:

    _ssh_hosts_zsh() {

        local hosts

        hosts=(${(f)"$(awk '/^Host / {print $2}' ~/ ssh/config)"})

        _describe -t hosts 'SSH Hosts' hosts

    }

    compdef _ssh_hosts_zsh ssh

    Pēc veiktajām manipulācijām saglabājiet un restartējiet savu termināli:

    source ~/.zshrc

    Veiksmīgi pabeidzot visu instalācijas procesu, automātiskā pabeigšana Zsh tiks aktivizēta.

     

    Darbs ar vairākiem konfigurācijas failiem

     

    Dažos gadījumos var būt noderīgi sadalīt SSH iestatījumus pa vairākiem failiem. Piemēram, tas var būt saistīts ar dažādām serveru grupām. Šādā gadījumā automātiskās pabeigšanas iestatīšanai jāņem vērā visi konfigurācijas faili.

    Lai to izdarītu, var pievienot vairākus konfigurācijas avotus:

    _ssh_hosts() {

        COMPREPLY=($(compgen -W "$(awk '/^Host / {print $2}' ~/.ssh/config ~/.ssh/config.d/*)" -- "${COMP_WORDS[COMP_CWORD]}"))

    }

    complete -F _ssh_hosts ssh

    Tagad automātiskā pabeigšana darbosies visiem hostiem, kas norādīti visos failos direktorijā ~/.ssh/config.d/. 

     

     

    Secinājums

    SSH komandu automātiskās pabeigšanas konfigurācija mezgliem, kas norādīti dokumentā .ssh/config, ir galvenais solis, kas ļauj palielināt darba efektivitāti un samazināt kļūdu iespējamību, mijiedarbojoties ar attālinātiem serveriem. Šī režīma dēļ jūs atvieglosiet pieslēgšanos un iegūsiet iespēju koncentrēties uz svarīgākajiem uzdevumiem, neatkarīgi no tā, vai izmantojat Zsh vai Bash.

    Ir svarīgi neaizmirst turēt teksta failu .ssh/config aktuālā stāvoklī un regulāri atjaunināt. Tas nodrošinās jums iespēju bez problēmām un viegli pārvaldīt lielas serveru infrastruktūras, neiztērējot laiku, atceroties sarežģītas pieslēgšanās komandas.