我有一个C++类,用于启动和与外部进程进行通信(有点类似于Qt的QProcess-我们不能使用Qt,因为我们正在开发一个小型嵌入式系统)。它使用pipe和dup2系统调用来建立父进程和子进程之间的链接。问题是 - 它不适用于希望密码的ssh,scp和其他程序。我已经放大了ssh,它似乎打开/ dev/tty,并以某种方式使用它从命令行读取密码。有什么方法可以从我的课程中输入密码,或者检测到应用程序需要输入来自其他源的输入而不是标准输入(根本不必是可移植的)?如何在C++中将密码输入到ssh中?
8
A
回答
7
2
寻找一些已经做到的程序,例如lftp。
或者与strace这Perl的一行代码来获得你应该做的一个想法:
perl -MNet::OpenSSH -e 'Net::OpenSSH->new(localhost, password => foo)'
这主要是减少对主进程分配一个伪终端对,分叉和设置的从部分在执行ssh之前将孩子上的pty作为当前tty。
相关问题
- 1. 在C中输入密码
- 2. 如何将密码输入到ssh中,或许使用实用程序是?
- 3. 如何自动输入带密码的ssh私钥密码
- 4. 输入密钥'c/users/dodie/.ssh/id_rsa'的密码短语:
- 5. 无法在svn + ssh中输入密码(或其他任何东西)到plink
- 6. 只输入一次ssh证书密码
- 7. pysvn用svn + ssh提示输入密码
- 8. 通过Python传递SSH密码输入
- 9. SSH:不要在shell脚本中提示输入密码
- 10. 在Arduino中输入密码?
- 11. 在C++中检测到输入密钥
- 12. 如何在密码输入时将密码转换为星号?
- 13. 如何让用户在c#中输入3次密码?
- 14. 如何在linux终端中输入'$'来输入sftp密码
- 15. 如何在BATCH中输入bash密码输入?
- 16. 如何在vimscript中输入像'输入'密码?
- 17. 如何使用expect来自动输入SSH密码?
- 18. 如何使用SSH预先输入密码?
- 19. 如何通过sudo运行命令并通过ssh .net输入密码c#
- 20. 在ReactJS中输入掩码密码
- 21. 如何在c中解密密码#
- 22. Ganymed ssh中的无密码ssh
- 23. 将密码输入smbpasswd
- 24. ssh密钥和github提示输入密码
- 25. Passworded SSH密钥突然不*要求我输入密码
- 26. bitbucket:设置SSH密钥,但仍然要求输入密码
- 27. 在bash脚本中的SSH仍然提示输入密码,而命令行上的ssh使用密钥验证
- 28. 如何在输入密码字段中插入复选框
- 29. 受密码保护的ssh密钥 - 一次只被要求输入密码
- 30. 在密码输入光标移动C++ \
你不想发送密码。你想要做的就是让ssh在〜/ .ssh目录中读取和使用你的私钥 –
使用公钥认证或者看看askpass和ssh-agent – sehe
看看[sshpass](http://sourceforge.net/projects/sshpass /) – ephemient