shell中实现自动登录(bash环境脚本中)
2014-08-15 15:10
721 查看
自己的脚本:
#!/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很不错,上述代码基本可以达到要求了,能够当FQ用的ssh -D自动登陆,执行远程命令等等,但是如果作为一个完全非交互的远程工具,应该说还一差,不能返回整个连接执行过程是否成功。
#!/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很不错,上述代码基本可以达到要求了,能够当FQ用的ssh -D自动登陆,执行远程命令等等,但是如果作为一个完全非交互的远程工具,应该说还一差,不能返回整个连接执行过程是否成功。
相关文章推荐
- shell中实现自动登录(bash环境脚本中)
- shell脚本实现ssh自动登录
- Shell脚本实现自动输入密码登录服务器
- shell脚本实现ssh自动登录-功能扩展,实现多个IP可选
- Shell脚本实现自动输入密码登录服务器
- shell脚本实现ssh自动登录功能分享
- Shell脚本实现自动登录
- shell脚本自动 进行配置免密登录,安装java环境,安装tomcat
- 用expect实现的自动登录到多台服务器的shell脚本
- shell脚本-实现网站自动登录
- shell脚本通过expect实现自动单边无密登录
- shell脚本实现ssh自动登录功能分享
- Shell脚本实现自动输入密码登录服务器
- linux使用shell脚本实现自动登录scp传输文件到其他服务器
- shell脚本通过expect实现自动单边无密登录功能
- Shell脚本实现自动输入密码登录服务器
- shell脚本自动登录FTP实现上传下载
- 用expect实现的自动登录到多台服务器的shell脚本
- shell实现ssh自动登录远程主机
- expect 实现脚本自动登录