avatar

目录
制作 SSH 登录远程服务器的 Shell 脚本

本文由 简悦 SimpRead 转码, 原文地址 https://blog.csdn.net/kaikai136412162/article/details/80743641

制作 SSH 登录远程服务器的 Shell 脚本

Ubuntu 环境需要安装 expect 安装包

plaintext
1
2
sudo apt-get install expect

使用 shell 脚本自动 ssh 登录远程服务器

login.sh

plaintext
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/expect -f
# 设置ssh连接的用户名
set user liuben
# 设置ssh连接的host地址
set host 10.211.55.4
# 设置ssh连接的port端口号
set port 9999
# 设置ssh连接的登录密码
set password admin
# 设置ssh连接的超时时间
set timeout -1

spawn ssh $user@$host -p $port
expect "*password:"
# 提交密码
send "$password\r"
# 控制权移交
interact
plaintext
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 确定login.sh脚本有可执行权限
chmod +x login.sh
# 执行login.sh脚本
./login.sh
# 第二种给脚本有可执行权限
[root]# chmod 777 ./login.sh
[root]# ./login.sh

# 注意
不能按照习惯来用sh login.sh来这行expect的程序,会提示找不到命令,如下:

login.sh: line 3: spawn: command not found
couldn't read file "*password:": no such file or directory
login.sh: line 5: send: command not found
login.sh: line 6: interact: command not found
因为expect用的不是bash所以会报错。因为bash和expect的脚本指定了不同的脚本解释器
#!/usr/bin/expect -f
#!/bin/bash
执行的时候直接./login.sh就可以了。~切记!
文章作者: thf
文章链接: http://pcbopcbo.github.io/2020/06/23/2020062316/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 漂泊的个人笔记

评论