setsid后open /dev/tty的问题
pur_e 2014-01-21 10:43:20 最近在使用sshpass,远程登陆到多个主机执行命令,之前一直是可用的,但前几天,系统从aix5.3升级到了6.1,就有问题了,报错:
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password,keyboard-interactive).
ssh加了-vvv打开日志,报错在:
debug1: read_passphrase: can't open /dev/tty: No such device or address
下载了sshpass和openssh的源码,调试了一下,确定问题是在setsid后,打开/dev/tty报错
问题:
1、/dev/tty打开是为了获取控制终端,setsid后脱离原控制终端,应该是不可以打开的,不过sshpass在setsid后,open了一个伪终端,来做为新会话的控制终端,就可以用了吧,linux和aix5.3都是可用的,aix6.1和hp-unix 11.31都不可用,是系统的实现问题吗?
2、有什么可用的修改方法吗?总不能自己修改个ssh来用吧。expect也不想用,有点麻烦
3、既然发贴了,顺便问一下stdin/stdout/stderr和控制终端的关系吧。我的理解是stdin/stdout/stderr就是挂在控制终端上,但控制终端可以额外接收EOF、ctrl+c等控制指令。