例如,我想运行:
ssh root@127.0.0.1 -p 2222
在C(通过system
)命令中。但是在我运行之后,它要求输入:
root@127.0.0.1's password:
然后我应该输入密码。我怎么能用C代码做到这一点?我可以获得一些关于如何模拟按键的代码吗?或者有更好的方法吗?
答案 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
文件中,包括忽略这些命令的密码要求的选项。