opened image

SSH-командаларды .ssh/config файлына автоматты түрде толықтыру конфигурациясы

Командаларды енгізу процесін серверлерге қосылу үшін жылдам әрі ыңғайлы ету үшін SSH-командаларын автоматты түрде толықтырудың пайдалы функциясы бар. Бұл функция конфигурациялық файлдарды пайдаланады. .ssh/config файлында көрсетілген желілік түйіндер үшін автоматты толықтыруды орнату ең тиімді және тиімді әдіс болып табылады, бұл қажетті серверлерге қосылуды айтарлықтай жеңілдетеді. Біз осы материалда Linux және macOS операциялық жүйелерінде бұл параметрді қалай іске асыруды қарастырамыз.

 

Файл .ssh/config хосттар тізімін құрылымдауда және көптеген қашықтағы серверлерді басқаруда оларға қол жеткізуді жеңілдетуде маңызды рөл атқарады. Дегенмен, сервер атауларын әр уақытта қолмен енгізу тиімсіз, сондықтан бұл процесті автоматты толықтыруды орнату арқылы жеңілдетуге болады.

 

.ssh/config - бұл не? 

 

Текстік құжат .ssh/config SSH қосылымдары үшін параметрлерді қамтитын файл болып табылады. .ssh/config арқылы сіз кілттерді пайдалану, стандартты порттарды белгілеу, серверлер үшін псевдонимдер (алиастар) орнату және басқа қосылу параметрлерін анықтау мүмкіндігіне ие боласыз. Бұл конфигурациядағы әр хосттың өз уникалды алиасы болуы мүмкін, бұл SSH-қосылу процесін жеңілдетеді.

 

Файл .ssh/config сізге ұнайтын редактормен оңай ашылады. Мысалы, gedit, vim немесе nano. Егер .ssh/config құжаты жоқ болса, команданы пайдалану кезінде ол автоматты түрде жасалады. 

 

Аталған графикалық редакторлардың мысалында файлды қалай пайдалану керек?

 

Редактор nano:

nano ~/.ssh/config

Vim мысалы:

vim ~/.ssh/config

Gedit мысалы (графикалық интерфейс әуесқойлары үшін):

gedit ~/.ssh/config &

Графикалық редактор жоқ болса, орнатуды келесі команданы пайдаланып жүргізуге болады:

sudo snap install gedit


 

.ssh/config текст файлының үлгісі:

nano ~/.ssh/config

Host example-server

HostName 192.168.1.100

User user1

Port 2222


 

Кейін, қосылу үшін толық команданы қайтадан енгізуден аулақ болу үшін:

ssh [email protected] -p 2222

Келесі нұсқаны пайдалануға болады:

ssh example-server


 

Автоматты толықтыру не үшін қажет?

 

Көптеген практикалық артықшылықтарға ие болып, жұмыс ыңғайлылығын айтарлықтай арттыратын SSH автоматты толықтыру функциясы Ubuntu-да командаларды енгізу уақытын азайтады және қашықтағы серверлермен өзара әрекеттесуді жақсартады. Автоматты толықтырудың негізгі себептері:

 

  • Жұмысты жеңілдету. Автоматты толықтыру қажетті командаларды жылдам жазуға мүмкіндік береді, бұл ұзын жолдармен немесе күрделі командалармен жұмыс істегенде әсіресе маңызды. Сізге оларды үнемі қолмен жазу міндетті емес.

Сізге белгілі бір хосттың адресін енгізу қажет болған жағдайда, келесі нұсқаны теруден аулақ болу үшін:

ssh [email protected]

Тек:

ssh use[TAB]

Осыдан кейін, жүйе автоматты түрде атын абсолютті мәнге дейін толықтырады.

 

  • Қателерді азайту. Автоматты толықтыру арқасында ұзын және күрделі командаларды теру кезінде қате жазу ықтималдығы азаяды, бұл ақаулардың жиілігін төмендетеді. Автоматты енгізу дұрыс нұсқаларды ұсынады, .ssh/config файлында бұрыннан орнатылған хосттарға сілтеме жасай отырып.

 

  • SSH бойынша жұмысты оңтайландыру. Автоматты толықтыру әртүрлі хосттарға қосылу параметрлерімен жазбаларды таниды, егер сіздің .ssh.config файлыңыз бұрыннан орнатылған болса, ssh-командасын жазу кезінде сізге осы жазбаларды ұсынады. Мұндай автоматты таңдау жүйесі бұрыннан орнатылған серверлерді жылдам іздеуге және оларға қосылуға мүмкіндік береді.

 

Бұл .ssh/config файлына қалай жазылуы мүмкін:

Host myserver

HostName myserver.com

User myusername

Port 2222

 

Нәтижесінде, сіздің конфигурацияларыңызға сүйене отырып, ssh myser[TAB] енгізгенде, жүйе сізге автоматты толықтыру нұсқаларын ұсынады.

 

  • Көптеген серверлермен жұмыс істеудің жеңілдігі. Бірнеше сервермен бір уақытта жұмыс істегенде, автоматты толықтыру функциясы басқару процесін айтарлықтай жеңілдетеді. Домендер немесе IP-адрес үшін әр комбинацияны есте сақтаудың қажеті жоқ — .ssh/config құжатымен шектелуге болады, ал жүйе мүмкін болатын нұсқаларды өзі ұсынады.

 

  • Уақытты үнемдеу. SSH автоматты толықтыруды пайдалану кезінде пайдаланушылар серверге қосылу үшін уақытты үнемдей алады, команданы нөлден бастап енгізудің орнына, тек бар командаларды немесе жолдарды қайталауға болады. Бұл функция көптеген қашықтағы серверлермен үнемі жұмыс істейтіндер үшін өте пайдалы. Мысалы, әзірлеушілер мен жүйелік әкімшілер үшін. 

 

  • Өнімділікті арттыру: Автоматты толықтыру скрипттермен және терминалмен жұмыс істегенде рутиналық әрекеттерді минимизациялап, маңызды тапсырмаларға назар аударуға мүмкіндік береді. Сонымен қатар, автоматты толықтыруды басқа жағдайларда да қолдануға болады, егер бәрі дұрыс орнатылса, бұл орындалатын жұмыстың көлемін айтарлықтай азайтуы және өнімділікті арттыруы мүмкін.

 

Бұл артықшылықтар автоматты толықтыруды Ubuntu-да SSH-пен жұмыс істейтін мамандар мен жаңадан келгендер үшін алмастырылмайтын құрал етеді.

 

SSH үшін bash-completion автоматты толықтыру конфигурациясы

 

Бірінші кезең: орнату

SSH автоматты толықтыруды орнату үшін сізге bash-completion пакеті орнатылған болуы керек. Бұл пакет әдетте қазіргі Linux дистрибутивтерінде алдын ала орнатылған, бірақ егер ол жоқ болса, оны орнатуға болады.

 

Ubuntu және Debian платформаларында bash-completion орнату:

sudo apt update

sudo apt install bash-completion


 

CentOS және Fedora платформаларында bash-completion орнату:


sudo yum install bash-completion

Arch Linux үшін: sudo pacman -S bash-completion

Белсендіру:

Орнату аяқталғаннан кейін, автоматты толықтырудың белсенділігін тексеру үшін .bashrc немесе .bash_profile файлына келесі жолды қосу керек:

nano ~/.bashrc

if [ -f /etc/bash_completion ]; then

    . /etc/bash_completion

fi

Толықтырудың белсенділігін тексергеннен кейін терминалды қайта іске қосыңыз немесе келесі команданы пайдаланыңыз:

source ~/.bashrc

 

Екінші кезең: SSH автоматты толықтыруды орнату

 

Конфигурацияның екінші кезеңінде .ssh/config құжатындағы хосттарға автоматты толықтыруды қосу қажет.

Бұл процедураны орындау үшін толықтыру скриптін пайдаланамыз:

/etc/bash_completion.d/ папкасына автоматты толықтыру үшін жаңа файл жасау немесе бар файлға өзгерістер енгізу. Келесі скрипт .ssh/config құжатынан қажетті хосттарды автоматты түрде жүктеуге көмектеседі.

/etc/bash_completion.d/ssh файлын жасаңыз:

sudo nano /etc/bash_completion.d/ssh


Ашылған файлға келесі кодты енгізіңіз:

_ssh_hosts() {

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

}

complete -F _ssh_hosts ssh


 

Бұл скрипт .ssh/config файлының хост атауларын шығарып, оларды автоматты толықтыру үшін береді.

Файлды сақтап, редакторды жабыңыз.

Өзгерістерді белсендіру:

source /etc/bash_completion.d/ssh

Енді ssh командасын енгізгенде және хост атауын енгізуді бастағанда, жүйе автоматты толықтыру нұсқаларын ұсынады.

 

Жұмысын тексеру

Автоматты толықтырудың жұмысын тексеру үшін, SSH командасын енгізуді бастаңыз да, Tab пернесін басыңыз. Егер бәрі дұрыс орнатылса, жүйе сіздің .ssh/config файлыңыздан қолжетімді хосттардың тізімін ұсынады.

Мысал:

ssh exa<Tab>

Нәтиже:

ssh example-server


 

Басқа қабықшалар үшін автоматты толықтыруды қолдау

Автоматты толықтыру тек Bash үшін ғана емес. Егер сіз Zsh сияқты басқа қабықшаларды пайдалансаңыз, автоматты толықтыруды да орнатуға болады.

 

Zsh үшін автоматты толықтыруды орнату

Zsh пайдаланушылары үшін орнату процесі сәл өзгеше. Сіз .zshrc файлына автоматты толықтырудың белсенділігін тексеру үшін келесі жолды жазуыңыз керек:

autoload -U compinit && compinit 

Келесі қадам автоматты толықтыру режимін жасау:

_ssh_hosts_zsh() {

    local hosts

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

    _describe -t hosts 'SSH Hosts' hosts

}

compdef _ssh_hosts_zsh ssh

Осы манипуляциялардан кейін, файлды сақтап, терминалды қайта жүктеңіз:

source ~/.zshrc

Барлық орнату процесін сәтті аяқтағаннан кейін, Zsh-да автоматты толықтыру жұмыс істейтін болады.

 

Көптеген конфигурациялық файлдармен өзара әрекеттесу

 

Кейбір жағдайларда SSH параметрлерін бірнеше файлға тарату пайдалы болуы мүмкін. Мысалы, бұл әртүрлі сервер топтарымен байланысты болуы мүмкін. Мұндай жағдайда автоматты толықтыру барлық конфигурациялық файлдарды ескеруі керек.

Ол үшін бірнеше конфигурация көздерін қосуға болады:

_ssh_hosts() {

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

}

complete -F _ssh_hosts ssh

Енді автоматты толықтыру барлық хосттар үшін жұмыс істейді, олар барлық файлдарда көрсетілген ~/.ssh/config.d/ директориясында.

 

 

Қорытынды

SSH-командаларын автоматты толықтыру конфигурациясы .ssh/config құжатында көрсетілген түйіндер үшін жұмыс тиімділігін арттырудың және қашықтағы серверлермен өзара әрекеттесуде қателер ықтималдығын азайтудың негізгі кезеңі болып табылады. Бұл режим сізге қосылуды жеңілдетеді және негізгі тапсырмалармен жұмыс істеуге назар аударуға мүмкіндік береді, Zsh немесе Bash қолдануынан тәуелсіз.

Текстік файл .ssh/config-ті өзекті күйде ұстап, үнемі жаңартып отыруды ұмытпаңыз. Бұл сізге үлкен серверлік инфрақұрылымдарды басқаруды жеңілдетеді, оған қосылу үшін күрделі командаларды есте сақтаудың қажеті жоқ.