ssh自動登陸和scp自動拷貝檔案

2021-07-29 11:21:48 字數 627 閱讀 1064

expect是乙個用來處理互動的命令。可以將互動過程寫在乙個指令碼上,使之自動化完成。比如:ssh登入,ftp登入等都符合互動的定義。

1、安裝

# sudo apt-get install expect

2、ssh自動登陸指令碼

#!/usr/bin/expect

spawn ssh 使用者名稱@伺服器ip

expect "*password:"

send "密碼\r"

expect "*#"

interact

3、scp自動拷貝到本地指令碼

#!/usr/bin/expect

set password "密碼"

spawn scp 使用者名稱@伺服器ip:伺服器路徑   本地路徑

expect "使用者名稱@伺服器ip's password:"

send "$password\r"

send "exit\r"

expect eof

4、expect最關鍵的四個命令 

send:用於向程序傳送字串

expect:從程序接收字串

spawn:啟動新的程序

interact:允許使用者互動

ssh自動登陸

突然碰到有人問ssh再傳輸金鑰時候能不手動輸入密碼,由於沒有碰到過這種情況,所以查了一下發現可以用sshpass做到。sshpass 引數 ssh命令 引數 p password 將引數password作為密碼 f passwordfile 提取passwordfile的第一行作為密碼 e 將環境變...

shell實現SSH自動登陸

公司開發使用docker,每次登陸自己開發機總要輸入ssh user name ip string,然後再確認輸入password,手快了還經常會輸錯。作為乙個懶人,肯定要找乙個取巧的方式,檢視了下ssh命令,由於它要進行一次跟伺服器的加密互動,所以沒有直接附帶密碼登陸的選項,只好作罷。前些天在同事...

shell實現SSH自動登陸

公司開發使用docker,每次登陸自己開發機總要輸入ssh user name ip string,然後再確認輸入password,手快了還經常會輸錯。作為乙個懶人,肯定要找乙個取巧的方式,檢視了下ssh命令,由於它要進行一次跟伺服器的加密互動,所以沒有直接附帶密碼登陸的選項,只好作罷。前些天在同事...