ssh脚本连接远程服务器

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 根据个人习惯

你可能感兴趣的:(技术,服务器,ssh,linux)