用expect實現SCP SSH自動輸入密碼登入

2021-09-13 07:43:05 字數 961 閱讀 7296

在命令列ssh遠端登入伺服器和scp遠端傳輸檔案都需要互動式輸入密碼,無法像mysql登入資料庫 mysql -uroot -p123456一樣直接完成。

其實可以用指令碼依賴expect來達到這一目的。

首先安裝expect:

[root@yqtrack-jumphost src]# yum -y install expect

ssh登入指令碼:

#!/usr/bin/expect

settimeout 30

spawnssh[email protected]

expect"password:"

send"123456@\$abcdef\r"

interact

scp傳送檔案指令碼:

#!/usr/bin/expect

settimeout 30

spawnscp/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 ...