![ssh gatekeeper 脚本和系统调用](https://linux22.com/image/682550/ssh%20gatekeeper%20%E8%84%9A%E6%9C%AC%E5%92%8C%E7%B3%BB%E7%BB%9F%E8%B0%83%E7%94%A8.png)
我正在使用来自 calomel.org 的 openssh gatekeeper 脚本使其看起来像是双因素身份验证。
我尝试使用 curl 向本地主机发送随机生成的字符串(通过短信发送)。当我将修改后的custom_string
子程序复制到单独的测试脚本中时,随机字符串可以正常到达,但在 gatekeeper 脚本中使用时则不起作用。
sub custom_string {
$maximum = 999999;
my $x = int(rand($maximum));
system "curl http://localhost/sendAuth.php?authCode=".$x;
$code = $x;
}
是不是因为我无法在网守脚本中使用系统命令,所以它不起作用?
也许我无法在脚本中使用网络功能?
TLDR:请告诉我我在哪些方面是无知的。
注意:我也愿意接受完成任务的建议,但这比了解我做错的事情要重要。
其他注意事项:我知道这rand()
不是生成我想要的随机字符串的最佳方法。我正在草拟一个概念证明,一旦我的基本设计正确,我就会替换它。
答案1
你期望从中得到什么?我不明白为什么它不起作用……但有一件事你不是curl
所做的就是以任何方式收集脚本中的结果。
也许是这样的:
my $response = `curl http://localhost/sendAuth.php?authCode=".$x`;
print $response;
可能会做你想做的事吗?
虽然通常我建议使用LWP
perl 中的模块进行 webby 类型的操作,而不是运行curl
- 但在这种情况下这应该不是问题。