在C中模拟按键

时间:2011-04-12 02:18:41

标签: c unix keyboard

例如,我想运行:

ssh root@127.0.0.1 -p 2222

在C(通过system)命令中。但是在我运行之后,它要求输入:

root@127.0.0.1's password:

然后我应该输入密码。我怎么能用C代码做到这一点?我可以获得一些关于如何模拟按键的代码吗?或者有更好的方法吗?

3 个答案:

答案 0 :(得分:4)

有更好的方法,例如key-based SSH authentication

答案 1 :(得分:3)

有一个漂亮的命令expect

这是一种常用的工具。如果您只需要ssh,那么最好查看其他帖子以生成密钥

答案 2 :(得分:1)

你应该跑:

ssh-keygen -t rsa
ssh-copy-id root@127.0.0.1 -p 2222

这将复制授权密钥,以便从您的帐户执行ssh命令,直接在您自己的计算机上执行root操作。未来的ssh请求不会提示输入密码。这也意味着您不必在shell脚本中包含root密码。

另一个选项是sudo命令。您可以将批准的命令添加到sudoers文件中,包括忽略这些命令的密码要求的选项。