在命令列ssh遠端登入伺服器和scp遠端傳輸檔案都需要互動式輸入密碼,無法像mysql登入資料庫 mysql -uroot -p123456一樣直接完成。
其實可以用指令碼依賴expect來達到這一目的。
首先安裝expect:
[root@yqtrack-jumphost src]
# yum -y install expect
ssh登入指令碼:
#!/usr/bin/expect
set
timeout 30
spawn
ssh
[email protected]
expect
"password:"
send
"123456@\$abcdef\r"
interact
scp傳送檔案指令碼:
#!/usr/bin/expect
set
timeout 30
spawn
scp
/usr/local/src/zbx_redis_stats
.py [email protected]:
/usr/local/src/
expect
"password:"
send
"123456@\$abcdef\r"
interact
注意:密碼有特殊字元如「$」需要轉義;
密碼以「\r」結尾。
expect實現「scp ssh自動輸入密碼「
expect通常用來自動輸入一些指令碼,比如我要ssh或者scp時,通常會讓你確認,是否繼續,或者輸入密碼。這種情況有兩種解決方式 安裝秘鑰,使得ssh和scp都能免密碼操作 免密碼登入。使用expect配置一些自動化的應答指令碼。由於我是通過docker容器訪問伺服器,所以推薦第二種。一般來說,各...
用expect 實現切換使用者時自動輸入密碼
昨天乙個問如何能夠將輸入密碼的工作在shell裡面自動完成,研究了一下,發現這種互動式的工作,普通的shell實現不了,據說可以借助expect來搞定,所以初步學習了一下expect,成果和大家分享一下 應用一 實現從普通使用者 test 切換到root使用者,自動輸入root的密碼,不用在終端提示...
expect實現自動登陸
1.首先安裝expect2.指令碼編寫,下面是乙個通過ssh登陸遠端機器 gll5530 的例子,密碼 wzj.1989 opt exptools bin expect f set timeout 30 spawn ssh gll5530 expect password send wzj.1989 ...