shell实现自动登录的脚本

发布时间:2019-10-17编辑:脚本学堂
shell实现自动登录的脚本

shell实现自动登录的脚本
 

复制代码 代码如下:
#!/bin/bash
expect  -c  "
    set timeout 3600;
    spawn su -;
    expect *assword:*;
    send 123456r;
    interact;";

注解:
ssh连接远程主机时候询问密码,跟su、sudo命令的默认行为一样,是不从stdin读入数据的,据称是为安全考虑,但是有时候在脚本当中确实需要无人守值的登陆。

使用expect完成密码应答的例子:
 

复制代码 代码如下:
#!/bin/bash
auto_login_ssh () {
expect -c "set timeout -1;
spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3};
expect *assword:*;
send -- $1r;
interact;"; }
auto_login_ssh passwd user@host

StrictHostKeyChecking=no参数让ssh默认添加新主机的公钥指纹,也就不会出现出现是否继续yes/no的提示了。

expect很不错,上述代码基本可以达到要求了,能够当翻墙用的ssh -D自动登陆,执行远程命令等等,但是如果作为一个完全非交互的远程工具,应该说还差点意思,不能返回整个连接执行过程是否成功。

您可能感兴趣的文章:
putty实现自动登录的方法(ssh和ssh2)
except自动登录的几段代码
expect自动登录远程服务器和执行重复任务的例子
ssh expect自动登录的脚本
linux中使用expect完成自动登录
用expect实现ssh自动登录服务器并进行批量管理
自动登录到多台服务器的shell脚本
实现ssh自动登录的4种方法