教程集 www.jiaochengji.com
教程集 >  脚本编程  >  shell  >  正文 shell实现自动登录的脚本

shell实现自动登录的脚本

发布时间:2014-08-26   编辑:jiaochengji.com
shell实现自动登录的脚本

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自动登陆,执行远程命令等等,但是如果作为一个完全非交互的远程工具,应该说还差点意思,不能返回整个连接执行过程是否成功。

您可能感兴趣的文章:
ssh expect自动登录的脚本
自动登陆FTP服务器的小shell
shell实现自动登录的脚本
自动登录到多台服务器的shell脚本
expect实现scp ssh自动输入密码登录的例子
自动登录多台远程主机查看进程是否正常的shell脚本
ftp自动上传下载的shell脚本
linux下用脚本实现自动ftp的方法
实现ftp的自动上传下载的shell脚本
python shell是什么

[关闭]
~ ~