Skip to content

Instantly share code, notes, and snippets.

@ionauq
Last active July 11, 2019 02:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ionauq/116777fe48773dc8cd4b3d2679891da2 to your computer and use it in GitHub Desktop.
Save ionauq/116777fe48773dc8cd4b3d2679891da2 to your computer and use it in GitHub Desktop.
跳板机登录服务器脚本
#! /bin/zsh
# ssh自动登录服务器脚本
# zsh 数组的索引从1开始,切记!
# 使用方法:通过传入索引就可以登录相对应的服务器
s_info=('server1-IP' 'server2-IP') # 修改 - 服务器IP地址数组
u_info=seonwater # 修改 - 登录服务器用户名
bastion_ip='IP地址' # 修改 - 跳板机IP地址
bastion_port=18181 # 修改 - 跳板机指定端口
reply_info='-JUMPER-0' # 修改 - 登录跳板机返回的信息
rsa_path='~/.ssh/server_id_rsa' # 修改 - 私钥地址
print $s_info
echo -n "Enter Server No.:"
read s_no
if [ -z "$s_no" ]; then
s_no=1
fi
l_info=$s_info[$s_no]
set timeout 10
/usr/bin/expect <(cat << EOF
spawn ssh -A -p $bastion_port -i $rsa_path $u_info@$bastion_ip
expect {
"${u_info}(0)@*${reply_info}*"
{send "ssh -p $bastion_port $u_info@$l_info\r";}
}
interact
EOF
)
## 方法二: 通过ssh方式登录
#ssh -t -A -p $bastion_port -i $rsa_path $u_info@$bastion_ip "ssh -p ${bastion_port} ${u_info}@${l_info}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment