1

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

以下命令:

ssh2_connect("myhost", 22);

产生以下错误:

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

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

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

4

2 回答 2

1

PHP 文档有一个提供第三个参数的示例。这篇文章的作者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);
于 2013-01-17T16:15:08.300 回答
1

请参阅下面的链接,该链接解释了所有替代方案

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

于 2013-01-17T05:13:18.293 回答