ssh脚本连接远程服务器
使用Mac电脑连接远程服务器,我们主要使用的是shell+expect的方式连接,具体语法可以找资料学习。
连接方式:
ipContext (ip文件,编写ip、password、user、port等信息)
read.sh (shell脚本文件,用来读取写入的ip文件)
connection.sh (expect脚本文件,用来连接ip)
该方式连接不同的ip时只需要编写不同的ip文件即可
ip文件
username
ip
密码
shell脚本如下:
#!/bin/bash
filename=$1
if test -z "$filename"
then
echo "error: 请输入文件名"
exit 1
fi
arr=()
i=0
for line in $(cat $filename)
do
arr[i]=$line
i=`expr $i + 1`
done
user=${arr[0]}
ip=${arr[1]}
passwd=${arr[2]}
echo "connectiong..."
expect -f connection.sh $user $ip $passwd
exit
expect脚本
#!/usr/bin/expect
set timeout 10
set user [ lindex $argv 0 ]
set ip [ lindex $argv 1 ]
set passwd [ lindex $argv 2 ]
spawn ssh $user@$ip
expect {
"(yes/no)?" { send "yes\r";exp_continue }
"password:" {send -- $passwd\r"}
}
interact
使用方式
sh read.sh ipContext
注意:
expect文件内的interact
可以改为expect eof
根据个人习惯