Zbi*_*gh1 8 c++ linux ssh pipe process
我有一个C++类用于启动和与外部进程通信(有点类似于Qt的QProcess - 我们不能使用Qt,因为我们正在开发一个小型嵌入式系统).它使用pipe和dup2系统调用在父进程和子进程之间建立链接.问题是 - 它不适用于ssh,scp和其他期望密码的程序.我已经使用了ssh,它似乎打开/ dev/tty并以某种方式使用它来从命令行读取密码.有没有办法从我的类输入密码或检测到应用程序是否期望从stdin以外的其他来源输入(根本不必是可移植的)?
thi*_*ton 7
ssh程序通常直接从终端读取密码.您需要分配一个伪终端并在此伪终端中执行ssh来捕获此I/O. pty手册页(第7节man 7 pty)是一个很好的介绍.
man 7 pty
我想重新说明你通常不想给ssh提供密码,有许多更好的身份验证选项.对应该在没有用户输入的情况下运行的进程使用公钥验证.
归档时间:
13 年,11 月 前
查看次数:
1699 次
最近记录: