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