我正在尝试SSH到远程服务器,以检查是否存在特定文件。
我可以在命令行中使用ssh,但是每当我尝试使用脚本执行时,它都不会返回任何内容/我必须输入“ exit”并按Enter键以返回命令行。
脚步:
ssh root@website.com 光盘.. ls ATMEXTRACT 我将所有这些命令放入输出,因此它们看起来像这样:
$output = shell_exec("ssh root@website.com");
$ouput1 = shell_exec("cd ..");
$ouput2 = shell_exec("ls *ATMEXTRACT*");
echo($output2);
这是您交互式进行的操作:
ssh root@website.com在当前shell中 运行 输入cd ..在ssh 输入ls ATMEXTRACT在ssh 输入exit的ssh,现在退出 找回原来的外壳 这是您在脚本中执行的操作:
ssh root@website.com在新的shell中运行并退出 cd ..在第二个外壳中运行并退出 ls ATMEXTRACT在第三个外壳中运行并退出 您可以尝试打开ssh命令并与之交互,但也可以省去麻烦,并使用ssh的命令行功能指定要运行的命令:
$output = shell_exec("ssh root@website.com 'cd .. && ls *ATMEXTRACT*'");
请注意,这可能由于PHP网站脚本而失败,因为您需要设置身份验证机制。即使ssh root@website.com在您手动登录到Web服务器并尝试使用密码时没有密码连接也是如此。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。