我需要在C中编写一个程序来检查远程文本文件中计算机MAC地址的出现。
是否有任何简单易用的ssh库允许程序连接到远程主机并检查文件是否包含某些内容?
或者我应该使用system()
函数在远程主机上运行ssh
和简单命令。
它应该是安全的,所以我可能需要使用公钥。是否可以使用来自不同计算机的相同公钥(每个计算机都有我的程序)?
我需要检查具有给定MAC地址(或其他标识符)的计算机是否允许执行某些操作。此操作应该是远程的,因此我可以远程启用/禁用功能。
答案 0 :(得分:2)
1)我不知道这是否简单,但是来自IIRC的http://www.libssh.org/,那些做cURL的人
2)是的,您可能应该通过shell脚本的“系统功能”(或系统/ popen,如果您绝对需要在C程序中包含结果)来执行此操作,因为这将为您节省很多重新实现的麻烦。
3)公钥,是的;虽然可以在多个主机/用户上重用公钥,但这并不是一种好的安全措施;更好的方法是为每个用户/主机生成密钥对,然后将公钥添加到需要连接的计算机上的.ssh / authorized_keys。这意味着撤销密钥只是删除单个文本文件中的一行而不是为多个主机重新生成密钥。但是,如果它不是安全敏感的,或者在这种情况下安全性无关紧要(!),那么使用单个键可能不会太疯狂。也就是说,如果您需要多个客户端来检查单个主机上是否存在;如果没有,请更新您的问题,以便在这方面更清楚。