Jan24

【原创】sshpass在ssh2有可能无法自动输入密码问题解决

Author: leeon  Click: 7706   Date: 2013.01.24 @ 14:04:02 pm Category: c/c++

公司的ssh2整合了ldap,当ssh登录时密码提示并不能在当前最新版本的sshpass上被捕获,导致无法实现自动输入密码,现在sshpass1.05的版本基础上增加两行代码即可

修改main.c文件:


setsid();
// This line makes the ptty our controlling tty. We do not otherwise need it open
slavept=open(name, O_RDWR );

dup2(slavept,STDERR_FILENO);// 增加错误输出文件描述符重定向到伪终端
close( slavept );

close( masterpt );

char **new_argv=malloc(sizeof(char *)*(argc+1));

 


terminate=ret;
if( terminate ) {
close( slavept );
}
kill(childpid, SIGKILL ); //增加当handleoutput返回的数值大于0,也就是异常的时候直接杀死子进程,避免当在ldap验证的时候密码提示重复输入导致异常

改造后在使用ssh的时候最好带上"-o StrictHostKeyChecking=no' 因为原先的sshpass对这种情况是没有做验证的,在ssh2下这里弹出的提示并不是错误输出,验证了多次我始终不能解决让程序自行判断提示自动输入yes。



TAG:   sshpass

    评论
    • 提交

    分类

    标签

    归档

    最新评论

    Abyss在00:04:28评论了
    Linux中ramdisk,tmpfs,ramfs的介绍与性能测试
    shallwe99在10:21:17评论了
    【原创】如何在微信小程序开发中正确的使用vant ui组件
    默一在09:04:53评论了
    Berkeley DB 由浅入深【转自架构师杨建】
    Memory在14:09:22评论了
    【原创】最佳PHP框架选择(phalcon,yaf,laravel,thinkphp,yii)
    leo在17:57:04评论了
    shell中使用while循环ssh的注意事项

    我看过的书

    链接

    其他

    访问本站种子 本站平均热度:8823 c° 本站链接数:1 个 本站标签数:464 个 本站被评论次数:94 次