Linux expect指令實現ssh自動登入指令碼

2021-09-14 00:05:25 字數 765 閱讀 1385

寫在前面:目前在公司是一人一台虛擬機器,大多數工作都要在虛擬機器上完成,為此每天要執行很多次【ssh ***@******】指令登入虛擬機器;有很多方式解決這個問題,如使用xshell、securecrt等工具記錄常用的連線,我就寫了乙個簡單的指令碼實現一鍵登入~

login.sh指令碼內容如下:

#!/usr/bin/expect

spawn ssh ***@******

expect "*password:"

send "密碼\r"

interact

再將【./login.sh】配置別名alias,或移動到可執行目錄中,即可實現【login】一鍵登入;

expect是乙個處理互動的指令,通過expect我們可以把互動過程寫到shell指令碼裡以實現一些自動化操作~

expect有四個核心的指令:

對於login.sh的執行過程為:

【spawn】啟動乙個新程序執行ssh登入指令,【expect】監聽到標準輸入的提示資訊『***@******』s password』符合匹配規則,觸發【send】傳送密碼代替手動輸入,完成登入,【interact】使用者參與互動,此時已登入上了虛擬機器;

使用expect還可以完成如:批量更新git**庫、自動登入ftp伺服器等功能~fyi~

linux expect 用法小記

使用expect實現自動登入的指令碼,網上有很多,可是都沒有乙個明白的說明,初學者一般都是照抄 收藏。可是為什麼要這麼寫卻不知其然。本文用乙個最短的例子說明指令碼的原理。指令碼 如下 usr bin expect set timeout 30 spawn ssh l username 192.168...

Linux expect命令詳解

linux expect命令詳解 2015年04月16日 10 38 57 jacky0922 閱讀數 11406 expect 主頁 是用於提供自動互動的工具。比如你要用ssh或者 telnet登入伺服器的時候,命令列下提示需要輸入使用者和密碼等。如果叫你用shell指令碼寫自動登入指令碼的話是不...

linux expect自動登入ssh,ftp

expect是一種能夠按照指令碼內容裡面設定的方式與互動式程式進行 會話 的程式。根據指令碼內容,expect可以知道程式會提示或反饋什麼內容以及 什麼是正確的應答。它是一種可以提供 分支和巢狀結構 來引導程式流程的解釋型指令碼語言。shell功能很強大,但是不能實現有互動功能的多機器之前的操作,例...