当前位置: > shell编程 >

shell实现自动登录的脚本

时间:2014-06-26 01:14来源:linux.it.net.cn 作者:IT网

shell实现自动登录的脚本
 

复制代码代码如下:
#!/bin/bash
expect  -c  "
    set timeout 3600;
    spawn su -;
    expect *assword:*; 
    send 123456\r;
    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 -- $1\r; 
interact;"; } 
auto_login_ssh passwd user@host

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

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

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容