使用脚本自动输入密码登录 ssh
- 支持多服务器 ,用 shell 脚本做选择判断。
- 支持自己输出密码并登录。
- 支持 Linux、MacOS。
vim ~/sshlogin.exp
expect 脚本实现自动化远程登录。
#!/usr/bin/expect -f
set hostname [lindex $argv 0]
set username [lindex $argv 1]
set password [lindex $argv 2]
set timeout 30
set force_conservative 1
if {$force_conservative} {
set send_slow {128 .1}
}
spawn ssh $username@$hostname;
expect {
"yes/no" {
send -s "yes\r"; exp_continue
}
"password" {
send -s "$password\r";
}
}
interact
vim ~/sshlogin.sh
#!/bin/bash
clear
RED='\033[0;31m'
GRN='\033[0;32m'
BLU='\033[0;34m'
NC='\033[0m'
pwdpath=$(cd "$(dirname "$0")";pwd)
ssh="expect $pwdpath/sshlogin.exp"
# menu.sh
echo "--------------------------------------"
echo "| _____ _____ _ _ |"
echo "| / ___/ / ___/ | | | | |"
echo "| | |___ | |___ | |_| | |"
echo "| \___ \ \___ \ | _ | |"
echo "| ___| | ___| | | | | | |"
echo "| /_____/ /_____/ |_| |_| |"
echo "--------------------------------------"
echo "--------------------------------------"
echo "please enter your Server:"
echo -e "(1) ${GRN}Linux Aliyun Shen ZHen${NC}"
echo "(2) Linux Aliyun Hong kong"
echo "(3) Linux QNUS Los Angeles"
echo "(4) exit"
echo "--------------------------------------"
read -p "请选择服务器:" input
case ${input} in
1)
echo -e "${GRN}Linux Aliyun Shen ZHen${NC}"
$ssh 127.0.0.1 root passwd
sleep 1;;
2)
echo -e "${GRN}Linux Aliyun Hong Kong${NC}"
$ssh 127.0.0.1 root passwd
sleep 1;;
3)
echo "Linux QN Los Angeles"
$ssh 127.0.0.1 root passwd
sleep 1;;
4)
exit;;
esac