PHP + SSH如何修复:“错误:ssh2_connect():启动SSH连接时出错(-4):收到无效的MAC?”

时间:2013-01-17 05:09:03

标签: php ssh libssh2

处理使用ssh2_connect构建的项目,以从服务器下载文件。该项目正在运行的生产服务器工作,但让我的Mac上运行OSX 10.8的ssh2_connect工作证明是有问题的。

以下命令:

ssh2_connect("myhost", 22);

产生以下错误:

Error: ssh2_connect(): Error starting up SSH connection(-4): Invalid MAC received

我可以从命令行连接,所以我知道它不是系统范围的SSH问题。有谁知道如何调试或解决这个问题?在此先感谢您的孩子可能拥有大脑和社交技巧:)

更新:解决方案发布在下面

2 个答案:

答案 0 :(得分:1)

见下面的链接,解释所有替代方案

http://kvz.io/blog/2007/07/24/make-ssh-connections-with-php/

答案 1 :(得分:1)

PHP文档有一个提供第3个参数的示例。这篇文章的作者http://phing.tigris.org/ds/viewMessage.do?dsForumId=1083&viewType=browseAll&dsMessageId=3022056#messagefocus(Derek Gallo)有完全相同的问题,他能够指出我正确的方向。谢谢德里克。似乎某些发行版需要额外的参数。最后,我将我的代码转换为使用phpseclib,因为它是一个纯PHP解决方案,不需要任何特殊模块。

$methods = array(
  'kex' => 'diffie-hellman-group1-sha1',
  'client_to_server' => array(
    'crypt' => '3des-cbc',
    'comp' => 'none'),
  'server_to_client' => array(
    'crypt' => 'aes256-cbc,aes192-cbc,aes128-cbc',
    'comp' => 'none'));

ssh2_connect("myhost", 22, $methods);