sudo apt install expect
該檔案用來儲存使用者的ssh鏈結資訊
新建檔案password.lst,然後新增如下內容
序號:ip:埠:使用者:密碼:說明
1:123.56.10.38:22:username:password:阿里雲測試伺服器
2:192.168.88.130:22:ca0gu0:toor:虛擬機器mysql資料庫伺服器
#!/bin/bash
direc=`dirname $0`
function color()
echo "#####################"
color blue " ssh login platform "
echo "#####################"
echo
}function underline()
function main() ' $direc/password.lst
underline
read -p '[*] 選擇主機: ' number
pw="$direc/password.lst"
ipaddr=$(awk -v num=$number 'begin }' $pw)
port=$(awk -v num=$number 'begin }' $pw)
username=$(awk -v num=$number 'begin }' $pw)
passwd=$(awk -v num=$number 'begin }' $pw)
case $number in
[0-9]|[0-9][0-9]|[0-9][0-9][0-9])
echo $passwd | grep -q ".pem$"
return=$?
if [[ $return == 0 ]];then
ssh -i $direc/keys/$passwd $username@$ipaddr -p $port
echo "ssh -i $direc/$passwd $username@$ipaddr -p $port"
else
expect -f $direc/ssh_login.exp $ipaddr $username $passwd $port
fi;;
"q"|"quit")
exit
;;*)
echo "input error!!"
;;esac
done
}main
#!/usr/bin/expect -f
set target [lindex $argv 0]
set user [lindex $argv 1]
set passwd [lindex $argv 2]
set port [lindex $argv 3]
set timeout 10
spawn ssh $user@$target -p $port
expect
"*password:"
}interact
./manager.sh
編輯~/.profile Linux下Shell指令碼
shell 指令碼 shell script 是一種為 shell 編寫的指令碼程式。從業界所說的 shell 通常都是指 shell 指令碼,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。由於習慣的原因,簡潔起見,本文出現的 shell程式設計 都是指 shell ...
Linux下shell指令碼程式設計
shell程式設計小練習 在linux作業系統中,如果插入乙個usb裝置,需要用mount掛載命令才能實現這個裝置的載入,下面寫乙個usb裝置掛載與檔案複製的shell程式,程式需求 1 執行時,提示使用者輸入 y 或者 y 確定是否掛載usb裝置,u盤檔案 dev sdc1 if ans y o ...
Linux下執行Shell指令碼
linux下可以用兩種方式執行shell指令碼 1 用shell程式執行指令碼 根據你的shell指令碼的型別,選擇shell程式,常用的有sh,bash,tcsh等。一般來說,第一行 bin bash裡面指明了shell型別的,比如 bin bash指明是bash,bin sh則是sh 然後輸入命...