利用expect實現SSH登入密碼的自動填充

2021-08-07 08:37:51 字數 813 閱讀 3434

ssh可以遠端登入另一台主機:基本使用口令如下

1.ssh user@host address  如:ssh [email protected]

以ysaicll身份登入主機192.168.0.1

2.ssh host address  如:ssh 192.168.0.1

直接登入主機192.168.0.1,適用於使用者名稱和本地一致情況

3.ssh -p 222 user@host address  如:ssh [email protected]

ssh預設埠22,-p引數可以修改預設埠

但有的時候,重複輸入使用者名稱密碼是一件很煩人的事情,這裡以ssh登入為例,介紹expect自動填充使用者名稱密碼

步驟:1.在linux環境下,安裝expect  -  yum install expect

2.編寫shell指令碼,vim autopwd.exp ,linux的字尾名沒有意義,只作標誌作用 3.

#!/bin/expect  

set timeout 30

spawn ssh -l ysaicll 192.168.0.1

expect "password:"

send "123"

interact

4.賦予autopwd.exp 可執行許可權,chmod +x autopwd.exp

5.利用expect解釋執行autopwd.exp,而不能用bash

注: spawn 是expect語句,必須有。

interact代表執行完留在遠端控制台,不加這句執行完後返回本地控制台。 

expect使用ssh登入指令碼

基礎篇 u s ssh spawn ssh l root 10.10.10.24 等待響應,第一次登入往往會提示是否永久儲存 rsa 到本機的 know hosts 列表中 等到回答後,在提示輸出密碼 之後就直接提示輸入密碼 expect yes no password host interact ...

SSH自動登入,需安裝expect包

usr bin expect set timeout 30 spawn ssh l root 192.168.1.117 expect password send nopasswd r interact set timeout 30 設定超時時間的,計時單位 秒 spawn ssh l root 1...

expect實現自動登入指令碼

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