我使用 scp 将文件传输到远程服务器,如下所示:
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
对于大多数服务器,这可以正常工作。然而,一台远程服务器在传输文件时出现问题,该文件已被标记为不完整。
我发现Files sent with ssh2_scp_send() are complete on remote server中的解决方案。
我只需要添加
ssh2_exec($connection, 'exit');
但是,在我进行此更改后,其他一些远程服务器似乎不支持退出命令。这将导致一个 php 警告:
PHP Warning: ssh2_exec(): Unable to request command execution on remote host in FILE.php on line XX
有谁知道这个问题的解决方案?显然,我可以忽略或抑制警告。然而,这在某种程度上感觉是错误的,特别是因为其余代码是免费的。